import { HTMLAttributes } from 'react'; import { UploadStatusType } from '../const/types.js'; import { IconType } from '../icon/index.js'; export interface UploadFile { uid?: string; url?: string; filename?: string; size?: string; status?: UploadStatusType; percent?: number; preview?: string | null; response?: unknown; errorText?: string; xhr?: XMLHttpRequest; } export interface UploadChangeEvent { file: UploadFile; fileList: UploadFile[]; } export interface UploadSortEvent extends UploadChangeEvent { oldIndex: number; newIndex: number; } export interface UploadRequestOptions { action?: string; method: string; name: string; file: File | Blob; filename: string; data: Record; headers: Record; withCredentials: boolean; timeout: number; onProgress: (percent: number) => void; onSuccess: (response?: unknown) => void; onError: (error?: unknown) => void; } export interface UploadRequestHandle { abort: () => void; } export type UploadCustomRequest = (options: UploadRequestOptions) => void | UploadRequestHandle | Promise; export interface UploadRef { upload: () => void; abort: (file?: UploadFile) => void; retry: (file: UploadFile) => void; } export interface UploadProps extends Omit, "onChange" | "onSelect" | "defaultValue" | "defaultChecked"> { method?: string; name?: string; action?: string; type?: "list" | "picture"; data?: Record; disabled?: boolean; readOnly?: boolean; directory?: boolean; multiple?: boolean; accept?: string; headers?: Record; withCredentials?: boolean; timeout?: number; customRequest?: UploadCustomRequest; parseResponse?: (xhr: XMLHttpRequest) => unknown; showUploadList?: boolean; transformFile?: (file: File) => File | Blob | Promise; fileList?: UploadFile[]; autoTrigger?: boolean; limit?: number; minSize?: number; maxSize?: number; uploadText?: string; uploadSubText?: string; uploadIcon?: IconType[]; draggable?: boolean; sortable?: boolean; preview?: boolean; validateAccept?: boolean; maxConcurrent?: number; onChange?: (event: UploadChangeEvent) => void; onRemove?: (event: UploadChangeEvent) => void; onSelectFiles?: (files: UploadFile[]) => void; onExceed?: () => void; onSizeError?: (event: UploadChangeEvent) => void; onTypeError?: (event: UploadChangeEvent) => void; onSort?: (event: UploadSortEvent) => void; onBeforeUpload?: (item: UploadFile, file: File) => boolean | File | Blob | void | Promise; } export type UploadContext = UploadProps & UploadRef; declare const _default: import('react').ForwardRefExoticComponent>; export default _default;