import { DownloadOptions } from '@xmcl/file-transfer';
import { AbortableTask } from '@xmcl/task';
export declare class DownloadTask extends AbortableTask<void> {
    protected options: DownloadOptions;
    protected controller: AbortController | undefined;
    constructor(options: DownloadOptions);
    protected abort(): void;
    protected process(): Promise<void>;
    protected isAbortedError(e: any): boolean;
}
export declare class DownloadMultipleTask extends AbortableTask<void> {
    protected options: DownloadOptions[];
    protected controller: AbortController | undefined;
    protected progresses: number[];
    protected totals: number[];
    constructor(options: DownloadOptions[]);
    get total(): number;
    get progress(): number;
    protected onFinished?: (index: number) => void;
    protected process(): Promise<void>;
    protected abort(isCancelled: boolean): void;
    protected isAbortedError(e: any): boolean;
}
//# sourceMappingURL=downloadTask.d.ts.map