import { CompletedCallbackFn, DownloadedCallbackFn, ErrorCallbackFn, ExtractedCallbackFn, FilesToFetch, ProgressCallbackFn, SavedCallbackFn } from "../types";
declare class Job {
    private filesToFetch;
    private headers;
    private handleSaving;
    private handleZipping?;
    private progressCallbacks;
    private downloadedCallbacks;
    private extractedCallbacks;
    private savedCallbacks;
    private completedCallbacks;
    private errorCallbacks;
    constructor(filesToFetch: FilesToFetch, headers: HeadersInit, handleSaving: (url: string, tarFile: ArrayBuffer, extractedCallbacks: ExtractedCallbackFn[], savedCallbacks: SavedCallbackFn[]) => Promise<void>, handleZipping?: () => Promise<void>);
    start(): Promise<void>;
    onProgress(callback: ProgressCallbackFn): void;
    onDownload(callback: DownloadedCallbackFn): void;
    onExtract(callback: ExtractedCallbackFn): void;
    onSave(callback: SavedCallbackFn): void;
    onComplete(callback: CompletedCallbackFn): void;
    onError(callback: ErrorCallbackFn): void;
    streamFetchToBuffer(url: string, headers: HeadersInit): Promise<ArrayBuffer>;
}
export default Job;
