///
import { CancellationToken, HttpExecutor, UpdateFileInfo, UpdateInfo } from "builder-util-runtime";
import { OutgoingHttpHeaders, RequestOptions } from "http";
import { URL } from "url";
import { ResolvedUpdateFileInfo } from "./main";
export declare abstract class Provider {
protected readonly executor: HttpExecutor;
readonly useMultipleRangeRequest: boolean;
protected requestHeaders: OutgoingHttpHeaders | null;
protected constructor(executor: HttpExecutor, useMultipleRangeRequest?: boolean);
readonly fileExtraDownloadHeaders: OutgoingHttpHeaders | null;
setRequestHeaders(value: OutgoingHttpHeaders | null): void;
abstract getLatestVersion(): Promise;
abstract resolveFiles(updateInfo: UpdateInfo): Array;
httpRequest(url: URL, headers?: OutgoingHttpHeaders | null, cancellationToken?: CancellationToken): Promise;
protected createRequestOptions(url: URL, headers?: OutgoingHttpHeaders | null): RequestOptions;
}
export declare function findFile(files: Array, extension: string, not?: Array): ResolvedUpdateFileInfo | null | undefined;
export declare function parseUpdateInfo(rawData: string | null, channelFile: string, channelFileUrl: URL): UpdateInfo;
export declare function getFileList(updateInfo: UpdateInfo): Array;
export declare function resolveFiles(updateInfo: UpdateInfo, baseUrl: URL, pathTransformer?: (p: string) => string): Array;