import type { App } from 'vue';
import type { ArcoOptions } from '../_utils/types';
import _Upload from './upload';
declare const Upload: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        fileList: {
            type: import("vue").PropType<import("./interfaces").FileItem[]>;
            default: undefined;
        };
        defaultFileList: {
            type: import("vue").PropType<import("./interfaces").FileItem[]>;
            default: () => never[];
        };
        accept: StringConstructor;
        action: StringConstructor;
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        multiple: {
            type: BooleanConstructor;
            default: boolean;
        };
        directory: {
            type: BooleanConstructor;
            default: boolean;
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        tip: StringConstructor;
        headers: {
            type: import("vue").PropType<Record<string, string>>;
        };
        data: {
            type: import("vue").PropType<Record<string, string | Blob> | ((fileItem: import("./interfaces").FileItem) => Record<string, string | Blob>)>;
        };
        name: {
            type: import("vue").PropType<string | ((fileItem: import("./interfaces").FileItem) => string)>;
        };
        withCredentials: {
            type: BooleanConstructor;
            default: boolean;
        };
        customRequest: {
            type: import("vue").PropType<(option: import("./interfaces").RequestOption) => import("./interfaces").UploadRequest>;
        };
        limit: {
            type: NumberConstructor;
            default: number;
        };
        autoUpload: {
            type: BooleanConstructor;
            default: boolean;
        };
        showFileList: {
            type: BooleanConstructor;
            default: boolean;
        };
        showRemoveButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        showRetryButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        showCancelButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        showUploadButton: {
            type: import("vue").PropType<boolean | {
                showOnExceedLimit: boolean;
            }>;
            default: boolean;
        };
        showPreviewButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        download: {
            type: BooleanConstructor;
            default: boolean;
        };
        showLink: {
            type: BooleanConstructor;
            default: boolean;
        };
        imageLoading: {
            type: import("vue").PropType<"eager" | "lazy">;
        };
        listType: {
            type: import("vue").PropType<import("./interfaces").ListType>;
            default: string;
        };
        responseUrlKey: {
            type: import("vue").PropType<string | ((fileItem: import("./interfaces").FileItem) => string)>;
        };
        customIcon: {
            type: import("vue").PropType<import("./interfaces").CustomIcon>;
        };
        imagePreview: {
            type: BooleanConstructor;
            default: boolean;
        };
        onBeforeUpload: {
            type: import("vue").PropType<(file: File) => boolean | Promise<boolean | File>>;
        };
        onBeforeRemove: {
            type: import("vue").PropType<(fileItem: import("./interfaces").FileItem) => Promise<boolean>>;
        };
        onButtonClick: {
            type: import("vue").PropType<(event: Event) => void | Promise<FileList>>;
        };
    }>> & Readonly<{
        onChange?: ((fileList: import("./interfaces").FileItem[], fileItem: import("./interfaces").FileItem) => any) | undefined;
        onError?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
        onProgress?: ((fileItem: import("./interfaces").FileItem, ev?: ProgressEvent<EventTarget> | undefined) => any) | undefined;
        onSuccess?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
        onPreview?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
        onExceedLimit?: ((fileList: import("./interfaces").FileItem[], files: File[]) => any) | undefined;
        "onUpdate:fileList"?: ((fileList: import("./interfaces").FileItem[]) => any) | undefined;
    }>, {
        prefixCls: string;
        render: () => false | import("vue/jsx-runtime").JSX.Element;
        innerSubmit: (fileItem?: import("./interfaces").FileItem | undefined) => void;
        innerAbort: (fileItem: import("./interfaces").FileItem) => void;
        innerUpdateFile: (id: string, file: File) => void;
        innerUpload: (files: File[]) => void;
    }, {}, {}, {
        submit(fileItem?: import("./interfaces").FileItem | undefined): void;
        abort(fileItem: import("./interfaces").FileItem): void;
        updateFile(id: string, file: File): void;
        upload(files: File[]): void;
    }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        'update:fileList': (fileList: import("./interfaces").FileItem[]) => true;
        exceedLimit: (fileList: import("./interfaces").FileItem[], files: File[]) => true;
        change: (fileList: import("./interfaces").FileItem[], fileItem: import("./interfaces").FileItem) => true;
        progress: (fileItem: import("./interfaces").FileItem, ev?: ProgressEvent<EventTarget> | undefined) => true;
        preview: (fileItem: import("./interfaces").FileItem) => true;
        success: (fileItem: import("./interfaces").FileItem) => true;
        error: (fileItem: import("./interfaces").FileItem) => true;
    }, import("vue").PublicProps, {
        disabled: boolean;
        multiple: boolean;
        draggable: boolean;
        limit: number;
        fileList: import("./interfaces").FileItem[];
        defaultFileList: import("./interfaces").FileItem[];
        directory: boolean;
        withCredentials: boolean;
        autoUpload: boolean;
        showFileList: boolean;
        showRemoveButton: boolean;
        showRetryButton: boolean;
        showCancelButton: boolean;
        showUploadButton: boolean | {
            showOnExceedLimit: boolean;
        };
        showPreviewButton: boolean;
        download: boolean;
        showLink: boolean;
        listType: import("./interfaces").ListType;
        imagePreview: boolean;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        fileList: {
            type: import("vue").PropType<import("./interfaces").FileItem[]>;
            default: undefined;
        };
        defaultFileList: {
            type: import("vue").PropType<import("./interfaces").FileItem[]>;
            default: () => never[];
        };
        accept: StringConstructor;
        action: StringConstructor;
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        multiple: {
            type: BooleanConstructor;
            default: boolean;
        };
        directory: {
            type: BooleanConstructor;
            default: boolean;
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        tip: StringConstructor;
        headers: {
            type: import("vue").PropType<Record<string, string>>;
        };
        data: {
            type: import("vue").PropType<Record<string, string | Blob> | ((fileItem: import("./interfaces").FileItem) => Record<string, string | Blob>)>;
        };
        name: {
            type: import("vue").PropType<string | ((fileItem: import("./interfaces").FileItem) => string)>;
        };
        withCredentials: {
            type: BooleanConstructor;
            default: boolean;
        };
        customRequest: {
            type: import("vue").PropType<(option: import("./interfaces").RequestOption) => import("./interfaces").UploadRequest>;
        };
        limit: {
            type: NumberConstructor;
            default: number;
        };
        autoUpload: {
            type: BooleanConstructor;
            default: boolean;
        };
        showFileList: {
            type: BooleanConstructor;
            default: boolean;
        };
        showRemoveButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        showRetryButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        showCancelButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        showUploadButton: {
            type: import("vue").PropType<boolean | {
                showOnExceedLimit: boolean;
            }>;
            default: boolean;
        };
        showPreviewButton: {
            type: BooleanConstructor;
            default: boolean;
        };
        download: {
            type: BooleanConstructor;
            default: boolean;
        };
        showLink: {
            type: BooleanConstructor;
            default: boolean;
        };
        imageLoading: {
            type: import("vue").PropType<"eager" | "lazy">;
        };
        listType: {
            type: import("vue").PropType<import("./interfaces").ListType>;
            default: string;
        };
        responseUrlKey: {
            type: import("vue").PropType<string | ((fileItem: import("./interfaces").FileItem) => string)>;
        };
        customIcon: {
            type: import("vue").PropType<import("./interfaces").CustomIcon>;
        };
        imagePreview: {
            type: BooleanConstructor;
            default: boolean;
        };
        onBeforeUpload: {
            type: import("vue").PropType<(file: File) => boolean | Promise<boolean | File>>;
        };
        onBeforeRemove: {
            type: import("vue").PropType<(fileItem: import("./interfaces").FileItem) => Promise<boolean>>;
        };
        onButtonClick: {
            type: import("vue").PropType<(event: Event) => void | Promise<FileList>>;
        };
    }>> & Readonly<{
        onChange?: ((fileList: import("./interfaces").FileItem[], fileItem: import("./interfaces").FileItem) => any) | undefined;
        onError?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
        onProgress?: ((fileItem: import("./interfaces").FileItem, ev?: ProgressEvent<EventTarget> | undefined) => any) | undefined;
        onSuccess?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
        onPreview?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
        onExceedLimit?: ((fileList: import("./interfaces").FileItem[], files: File[]) => any) | undefined;
        "onUpdate:fileList"?: ((fileList: import("./interfaces").FileItem[]) => any) | undefined;
    }>, {
        prefixCls: string;
        render: () => false | import("vue/jsx-runtime").JSX.Element;
        innerSubmit: (fileItem?: import("./interfaces").FileItem | undefined) => void;
        innerAbort: (fileItem: import("./interfaces").FileItem) => void;
        innerUpdateFile: (id: string, file: File) => void;
        innerUpload: (files: File[]) => void;
    }, {}, {}, {
        submit(fileItem?: import("./interfaces").FileItem | undefined): void;
        abort(fileItem: import("./interfaces").FileItem): void;
        updateFile(id: string, file: File): void;
        upload(files: File[]): void;
    }, {
        disabled: boolean;
        multiple: boolean;
        draggable: boolean;
        limit: number;
        fileList: import("./interfaces").FileItem[];
        defaultFileList: import("./interfaces").FileItem[];
        directory: boolean;
        withCredentials: boolean;
        autoUpload: boolean;
        showFileList: boolean;
        showRemoveButton: boolean;
        showRetryButton: boolean;
        showCancelButton: boolean;
        showUploadButton: boolean | {
            showOnExceedLimit: boolean;
        };
        showPreviewButton: boolean;
        download: boolean;
        showLink: boolean;
        listType: import("./interfaces").ListType;
        imagePreview: boolean;
    }>;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    fileList: {
        type: import("vue").PropType<import("./interfaces").FileItem[]>;
        default: undefined;
    };
    defaultFileList: {
        type: import("vue").PropType<import("./interfaces").FileItem[]>;
        default: () => never[];
    };
    accept: StringConstructor;
    action: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    directory: {
        type: BooleanConstructor;
        default: boolean;
    };
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    tip: StringConstructor;
    headers: {
        type: import("vue").PropType<Record<string, string>>;
    };
    data: {
        type: import("vue").PropType<Record<string, string | Blob> | ((fileItem: import("./interfaces").FileItem) => Record<string, string | Blob>)>;
    };
    name: {
        type: import("vue").PropType<string | ((fileItem: import("./interfaces").FileItem) => string)>;
    };
    withCredentials: {
        type: BooleanConstructor;
        default: boolean;
    };
    customRequest: {
        type: import("vue").PropType<(option: import("./interfaces").RequestOption) => import("./interfaces").UploadRequest>;
    };
    limit: {
        type: NumberConstructor;
        default: number;
    };
    autoUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    showFileList: {
        type: BooleanConstructor;
        default: boolean;
    };
    showRemoveButton: {
        type: BooleanConstructor;
        default: boolean;
    };
    showRetryButton: {
        type: BooleanConstructor;
        default: boolean;
    };
    showCancelButton: {
        type: BooleanConstructor;
        default: boolean;
    };
    showUploadButton: {
        type: import("vue").PropType<boolean | {
            showOnExceedLimit: boolean;
        }>;
        default: boolean;
    };
    showPreviewButton: {
        type: BooleanConstructor;
        default: boolean;
    };
    download: {
        type: BooleanConstructor;
        default: boolean;
    };
    showLink: {
        type: BooleanConstructor;
        default: boolean;
    };
    imageLoading: {
        type: import("vue").PropType<"eager" | "lazy">;
    };
    listType: {
        type: import("vue").PropType<import("./interfaces").ListType>;
        default: string;
    };
    responseUrlKey: {
        type: import("vue").PropType<string | ((fileItem: import("./interfaces").FileItem) => string)>;
    };
    customIcon: {
        type: import("vue").PropType<import("./interfaces").CustomIcon>;
    };
    imagePreview: {
        type: BooleanConstructor;
        default: boolean;
    };
    onBeforeUpload: {
        type: import("vue").PropType<(file: File) => boolean | Promise<boolean | File>>;
    };
    onBeforeRemove: {
        type: import("vue").PropType<(fileItem: import("./interfaces").FileItem) => Promise<boolean>>;
    };
    onButtonClick: {
        type: import("vue").PropType<(event: Event) => void | Promise<FileList>>;
    };
}>> & Readonly<{
    onChange?: ((fileList: import("./interfaces").FileItem[], fileItem: import("./interfaces").FileItem) => any) | undefined;
    onError?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
    onProgress?: ((fileItem: import("./interfaces").FileItem, ev?: ProgressEvent<EventTarget> | undefined) => any) | undefined;
    onSuccess?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
    onPreview?: ((fileItem: import("./interfaces").FileItem) => any) | undefined;
    onExceedLimit?: ((fileList: import("./interfaces").FileItem[], files: File[]) => any) | undefined;
    "onUpdate:fileList"?: ((fileList: import("./interfaces").FileItem[]) => any) | undefined;
}>, {
    prefixCls: string;
    render: () => false | import("vue/jsx-runtime").JSX.Element;
    innerSubmit: (fileItem?: import("./interfaces").FileItem | undefined) => void;
    innerAbort: (fileItem: import("./interfaces").FileItem) => void;
    innerUpdateFile: (id: string, file: File) => void;
    innerUpload: (files: File[]) => void;
}, {}, {}, {
    submit(fileItem?: import("./interfaces").FileItem | undefined): void;
    abort(fileItem: import("./interfaces").FileItem): void;
    updateFile(id: string, file: File): void;
    upload(files: File[]): void;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'update:fileList': (fileList: import("./interfaces").FileItem[]) => true;
    exceedLimit: (fileList: import("./interfaces").FileItem[], files: File[]) => true;
    change: (fileList: import("./interfaces").FileItem[], fileItem: import("./interfaces").FileItem) => true;
    progress: (fileItem: import("./interfaces").FileItem, ev?: ProgressEvent<EventTarget> | undefined) => true;
    preview: (fileItem: import("./interfaces").FileItem) => true;
    success: (fileItem: import("./interfaces").FileItem) => true;
    error: (fileItem: import("./interfaces").FileItem) => true;
}, string, {
    disabled: boolean;
    multiple: boolean;
    draggable: boolean;
    limit: number;
    fileList: import("./interfaces").FileItem[];
    defaultFileList: import("./interfaces").FileItem[];
    directory: boolean;
    withCredentials: boolean;
    autoUpload: boolean;
    showFileList: boolean;
    showRemoveButton: boolean;
    showRetryButton: boolean;
    showCancelButton: boolean;
    showUploadButton: boolean | {
        showOnExceedLimit: boolean;
    };
    showPreviewButton: boolean;
    download: boolean;
    showLink: boolean;
    listType: import("./interfaces").ListType;
    imagePreview: boolean;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    install: (app: App, options?: ArcoOptions | undefined) => void;
};
export declare type UploadInstance = InstanceType<typeof _Upload>;
export type { FileStatus, FileItem, CustomIcon, RequestOption, UploadRequest, } from './interfaces';
export default Upload;
