/**
 * 下载文件信息模型
 */
export interface IFileMeta {
    id?: string;
    name: string;
    length: number;
    downloadID: string;
    chunkSize?: number;
}
/**
 * 文件下载事件
 */
export type FileDownloadEvent = 'init' | 'info' | 'error' | 'downloadProgress' | 'saveProgress' | 'success';
/**
 * 大文件分片/断点续传下载
 */
export declare class BigFileDownload {
    private fileID;
    private downloadURL?;
    ChunkUnitM: number;
    private chunkByteSize;
    private totalChunks;
    private currentDB?;
    private keys?;
    private fileMetaData;
    private finishNum;
    private eventTarget;
    private cancelSource;
    private isStarting;
    private fileName?;
    private cacheSize;
    private requestTimeout;
    /**
     *
     * @param fileID
     * @param downloadURL 下载链接(可空)
     * @param chunkSizeM 分片大小，默认为3M
     * @param cacheNum 缓存大小
     * @param requestTimeoutMS 请求超时时间(毫秒)默认为60s
     */
    constructor(fileID: string, downloadURL?: string | undefined, chunkSizeM?: number, cacheNum?: number, requestTimeoutMS?: number);
    /**
     * 订阅事件
     */
    on(eventName: FileDownloadEvent, fn: (event: any) => void): void;
    /**
     * 发送消息
     */
    private dispatch;
    /**
     * 抛出异常信息
     * @param data 异常描述
     */
    private dispatchError;
    /**
     * 推送文字进度
     * @param data 文字消息
     */
    private dispatchInfo;
    /**
     * Get请求获取文件元数据信息
     * @param baseURL 根URL路径
     * @param apiPath  方法路径
     * @param queryParams 请求参数
     * @returns IFileMeta
     */
    queryDownloadFileMeta(baseURL: string, apiPath?: string, queryParams?: any): Promise<IFileMeta | null>;
    /**
     *获取本地的File元数据信息
     */
    getIFileMeta(): Promise<IFileMeta | null>;
    /**
     * 初始化信息
     */
    private initIndexDB;
    /**
     * 初始化要下载的文件元数据
     * @param url 下载路径
     * @returns
     */
    init(fileMeta: IFileMeta): Promise<void>;
    /**
     * 获取分片大小
     * @returns
     */
    getTotalChunks(): number;
    /**
     * 暂停下载
     */
    pause(): void;
    /**
     * 重新开始
     */
    restart(): void;
    /**
     * 删除下载任务
     */
    delete(): void;
    sleep(ms: any): Promise<unknown>;
    /**
     * 开始分段下载
     */
    download(downloadAPI?: string, baseURL?: string, _params?: any): Promise<void>;
    /**
     * 下载完成进度
     */
    private downloadProgress;
    /**
     * 输出保存文件进度-分片统计
     */
    private outputProgress;
    /**
     * 保存文件
     */
    private savefile;
}
