import type { Awaitable, Mutable } from '@hd-front-end/element-plus/es/utils'; import type { UploadAjaxError } from './ajax'; import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'; import type Upload from './upload.vue'; export declare const uploadListTypes: readonly ["text", "picture", "picture-card"]; export declare const genFileId: () => number; export type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'; export interface UploadProgressEvent extends ProgressEvent { percent: number; } export interface UploadRequestOptions { action: string; method: string; data: Record; filename: string; file: UploadRawFile; headers: Headers | Record; onError: (evt: UploadAjaxError) => void; onProgress: (evt: UploadProgressEvent) => void; onSuccess: (response: any) => void; withCredentials: boolean; } export interface UploadFile { name: string; percentage?: number; status: UploadStatus; size?: number; response?: unknown; uid: number; url?: string; raw?: UploadRawFile; } export type UploadUserFile = Omit & Partial>; export type UploadFiles = UploadFile[]; export interface UploadRawFile extends File { uid: number; isDirectory?: boolean; } export type UploadRequestHandler = (options: UploadRequestOptions) => XMLHttpRequest | Promise; export interface UploadHooks { beforeUpload: (rawFile: UploadRawFile) => Awaitable; beforeRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable; onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void; onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void; onPreview: (uploadFile: UploadFile) => void; onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void; onProgress: (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void; onError: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void; onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void; } export type UploadData = Mutable>; export declare const uploadBaseProps: { readonly action: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly headers: { readonly type: ExtractPropTypes; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly method: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly data: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => Mutable<{}>, boolean>; readonly multiple: BooleanConstructor; readonly name: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly drag: BooleanConstructor; readonly withCredentials: BooleanConstructor; readonly showFileList: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly accept: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly fileList: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => [], boolean>; readonly autoUpload: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly listType: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly httpRequest: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, UploadRequestHandler, boolean>; readonly disabled: BooleanConstructor; readonly limit: NumberConstructor; }; export declare const uploadProps: { readonly beforeUpload: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly beforeRemove: { readonly type: ExtractPropTypes; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly onRemove: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly onChange: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly onPreview: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly onSuccess: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly onProgress: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly onError: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly onExceed: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => void, boolean>; readonly crossorigin: { readonly type: ExtractPropTypes; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly action: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly headers: { readonly type: ExtractPropTypes; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly method: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly data: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => Mutable<{}>, boolean>; readonly multiple: BooleanConstructor; readonly name: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly drag: BooleanConstructor; readonly withCredentials: BooleanConstructor; readonly showFileList: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly accept: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly fileList: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, () => [], boolean>; readonly autoUpload: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly listType: import("@hd-front-end/element-plus/es/utils").EpPropFinalized; readonly httpRequest: import("@hd-front-end/element-plus/es/utils").EpPropFinalized, unknown, unknown, UploadRequestHandler, boolean>; readonly disabled: BooleanConstructor; readonly limit: NumberConstructor; }; export type UploadProps = ExtractPropTypes; export type UploadPropsPublic = __ExtractPublicPropTypes; export type UploadInstance = InstanceType & unknown;