import type { TransferState } from './data_model/enums';
import type { CosXmlClientError, CosXmlServiceError } from './data_model/errors';
import type { DownloadParameters, UploadParameters } from './data_model/parameters';
export type ResultSuccessCallBack = (header?: object) => void;
export type ResultFailCallBack = (clientException?: CosXmlClientError, serviceException?: CosXmlServiceError) => void;
export type ResultListener = {
    successCallBack: ResultSuccessCallBack;
    failCallBack: ResultFailCallBack;
};
export type StateCallBack = (state: TransferState) => void;
export type ProgressCallBack = (complete: number, target: number) => void;
export type InitMultipleUploadCallBack = (bucket: string, cosKey: string, uploadId: string) => void;
export declare class CosTransferManger {
    private cosTransferModule;
    private transferKey;
    private resultListeners;
    private stateCallBacks;
    private progressCallBacks;
    private initMultipleUploadCallbacks;
    constructor(transferKey: string, cosTransferModule: any);
    upload(bucket: string, cosPath: string, fileUri: string, parameters: UploadParameters): Promise<TransferTask>;
    download(bucket: string, cosPath: string, savePath: string, parameters: DownloadParameters): Promise<TransferTask>;
    runResultSuccessCallBack(key: string, header?: object): void;
    runResultFailCallBack(key: string, clientException?: CosXmlClientError, serviceException?: CosXmlServiceError): void;
    runStateCallBack(key: string, state: string): void;
    runProgressCallBack(key: string, complete: number, target: number): void;
    runInitMultipleUploadCallback(key: string, bucket: string, cosKey: string, uploadId: string): void;
    private addResultListener;
    private addStateCallBack;
    private addProgressCallBack;
    private addInitMultipleUploadCallback;
}
export declare class TransferTask {
    private cosTransferModule;
    private transferKey;
    private taskId;
    constructor(transferKey: string, taskId: string, cosTransferModule: any);
    pause(): Promise<void>;
    resume(): Promise<void>;
    cancel(): Promise<void>;
}
//# sourceMappingURL=cos_transfer.d.ts.map