import { UploadFile, SizeLimitObj, FileChangeParams, FileChangeReturn, RequestMethodResponse, HandleUploadParams, SuccessContext, handleSuccessParams, UploadTriggerUploadText, ErrorContext } from './types'; export interface BeforeUploadExtra { /** 图片文件大小限制 */ sizeLimit?: number | SizeLimitObj; /** 上传文件之前的钩子,参数为上传的文件,返回值决定是否上传 */ beforeUpload?: (file: UploadFile) => boolean | Promise; } export type BeforeUploadPromiseList = [Promise, undefined | Promise]; export declare function handleBeforeUpload(file: UploadFile, params: BeforeUploadExtra): Promise<[SizeLimitObj, boolean]>; export interface OnErrorParams extends ErrorContext { formatResponse?: HandleUploadParams['formatResponse']; } export declare function handleError(options: OnErrorParams): { response: any; event: ProgressEvent; files: UploadFile[]; XMLHttpRequest: XMLHttpRequest; }; export declare function handleSuccess(params: handleSuccessParams): { response: { [key: string]: any; url?: string; }; event: ProgressEvent; files: UploadFile[]; XMLHttpRequest: XMLHttpRequest; }; export type UploadRequestReturn = { status?: 'fail' | 'success'; /** 上传失败的文件,需等待继续上传 */ failedFiles?: UploadFile[]; data?: SuccessContext; /** 批量文件上传,一个文件一个请求的场景下,响应结果的列表 */ list?: UploadRequestReturn[]; }; export declare function handleRequestMethodResponse(res: RequestMethodResponse): boolean; /** * 一次上传请求的返回结果 */ export declare function uploadOneRequest(params: HandleUploadParams): Promise; /** * 可能单个文件上传,也可能批量文件一次性上传 * 返回上传成功或上传失败的文件列表 */ export declare function upload(params: HandleUploadParams): Promise; export declare function formatToUploadFile(files: File[], format: FileChangeParams['format'], status?: UploadFile['status'], percent?: number): UploadFile[]; export declare function validateFile(params: FileChangeParams): Promise; export declare function getFilesAndErrors(fileValidateList: FileChangeReturn[], getError: (p: { [key: string]: any; }) => string): { sizeLimitErrors: FileChangeReturn[]; beforeUploadErrorFiles: UploadFile[]; toFiles: UploadFile[]; }; /** * 获取文件上传触发元素文本 在全局配置中的字段 */ export declare function getTriggerTextField(p: { status: 'success' | 'fail' | 'progress' | 'waiting'; multiple: boolean; autoUpload: boolean; isBatchUpload: boolean; }): keyof UploadTriggerUploadText; export interface GetDisplayFilesParams { multiple: boolean; autoUpload: boolean; isBatchUpload: boolean; uploadValue: UploadFile[]; toUploadFiles: UploadFile[]; } /** * 获取文件列表显示 */ export declare function getDisplayFiles(params: GetDisplayFilesParams): UploadFile[];