export declare type ListType = 'text' | 'picture' | 'picture-card'; export declare type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'; export declare type UploadFile = { name: string; percentage?: number; status: UploadStatus; size: number; response?: unknown; uid: number; url?: string; raw: PsFile; }; export interface PsFile extends File { uid: number; } export interface PsUploadProgressEvent extends ProgressEvent { percent: number; } export interface PsUploadAjaxError extends Error { status: number; method: string; url: string; } export interface PsUploadRequestOptions { action: string; data: Record; filename: string; file: File; headers: Headers; onError: (e: Error) => void; onProgress: (e: ProgressEvent) => void; onSuccess: (response: XMLHttpRequestResponseType) => unknown; withCredentials: boolean; } export declare type FileHandler = (file: UploadFile, uploadFiles: UploadFile[]) => T; export declare type FileResultHandler = (param: T, file: UploadFile, uploadFiles: UploadFile[]) => void; export interface IUseHandlersProps { listType: ListType; fileList: UploadFile[]; beforeUpload?: FileHandler; beforeRemove?: FileHandler | boolean>; onRemove?: FileHandler; onChange?: FileHandler; onPreview?: () => void; onSuccess?: FileResultHandler; onProgress?: FileResultHandler; onError?: FileResultHandler; } export interface PsUpload extends IUseHandlersProps { accept: string; headers?: Headers; data?: Record; multiple?: boolean; name?: string; drag?: boolean; withCredentials?: boolean; showFileList?: boolean; type?: string; dragOver: boolean; genUid: () => number; tempIndex: number; handleError: () => void; handleProgress: () => void; handleRemove: () => void; handleStart: () => void; handleSuccess: () => void; uploadDisabled: boolean; uploadFiles: UploadFile[]; submit: () => void; clearFiles: () => void; }