import { RuntimeConfigOptions } from '@oinone/kunlun-meta';
declare type Fn = (...arg: any[]) => unknown;
export interface MultipartUploadRuntimeConfig extends RuntimeConfigOptions {
    partSize?: number;
    parallel?: number;
    chunkUploadThreshold?: number;
}
export declare enum IUploadMethod {
    Single = "Single",
    Multipart = "Multipart"
}
export interface IUploadFileEventParams {
    /**
     * 上传的文件
     */
    file: File;
    /**
     * 接受文件类型
     */
    accept?: string;
    /**
     * cdn key
     */
    cdnKey?: string;
    /**
     * 是否通过PamirsFile管理文件
     */
    managed?: boolean;
    /**
     * 上传方式，阈值：[直传、分片上传]
     */
    uploadMethod?: IUploadMethod;
    /**
     * 分片大小, 单位M
     */
    partSize?: number;
    /**
     * 文件大小 大于 某个值的时候开启分片上传
     */
    chunkUploadThreshold?: number;
    /**
     * 并发数量
     */
    parallel?: number;
    /**
     * 上传成功
     */
    onSuccess?: Fn;
    /**
     * 上传失败
     */
    onError?: Fn;
    /**
     * 上传中
     */
    onProgress?: Fn;
}
export declare const defaultStaticMultiPartConfig: {
    partSize: number;
    chunkUploadThreshold: number;
    parallel: number;
};
export declare const defaultMultiPartConfig: {
    readonly runtimeConfig: MultipartUploadRuntimeConfig;
    readonly partSize: number;
    readonly chunkUploadThreshold: number;
    readonly parallel: number;
};
export declare const useUploadFileEvent: (params: IUploadFileEventParams) => Promise<() => Promise<void>>;
export {};
