export type FileUploadResult = {
    url: string;
    /** override file name */
    name?: string;
    /** override file type */
    type?: string;
};
export type FileUploadHandler = (file: File) => Promise<FileUploadResult>;
export type UploadSuccessItem = {
    file: File;
    result: FileUploadResult;
};
export type UploadFailedItem = {
    file: File;
    error: Error;
};
export type BatchUploadResult = {
    success: readonly UploadSuccessItem[];
    failed: readonly UploadFailedItem[];
};
export declare function batchUploadFiles(files: readonly File[], handler: FileUploadHandler, onFileUpload?: (item: UploadSuccessItem) => void, onFileFail?: (item: UploadFailedItem) => void): Promise<BatchUploadResult>;
