import type { UploadProps as ElUploadProps } from "element-plus";
type UploadStatus = "ready" | "uploading" | "success" | "fail" | "canceled";
interface UploadFileItem {
    file?: File & {
        uid: string;
    };
    name: string;
    size: string;
    progress?: number;
    /**
     * ready 待上传; uploading 上传中; success 上传成功;  fail上传失败；上传已取消：canceled
     */
    status: UploadStatus;
    error?: string;
    image?: string | null;
    controller?: AbortController;
}
interface UploadProps extends /* @vue-ignore */ ElUploadProps {
    modelValue: boolean;
    uploadRequest?: (data: any) => Promise<any>;
    showFullscreen?: boolean;
    showClose?: boolean;
    url: string;
    params?: any;
    title?: string;
    maxCount?: number;
    multiple?: boolean;
    rules: any[];
    closeEvent?: Function;
    uploadCompleteEvent?: (data: any) => void;
    uploadType?: string;
}
interface UploadEmits {
    (e: "update:modelValue", value: boolean): void;
    (e: "close"): void;
}
export type { UploadProps, UploadFileItem, ElUploadProps, UploadEmits };
