import { APIResponse, EThemes, UploadFile, UploadRawFile } from './upload.type';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    type: {
        type: import("vue").PropType<import("./upload.type").Type>;
        default: import("./upload.type").Type;
        validator: (val: import("./upload.type").ETypes) => boolean;
    };
    theme: {
        type: import("vue").PropType<import("./upload.type").Theme>;
        default: import("./upload.type").Theme;
        validator: (val: EThemes) => boolean;
    };
    files: {
        type: import("vue").PropType<UploadFile[]>;
        default: () => UploadFile[];
    };
    name: {
        type: StringConstructor;
        default: string;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    accept: {
        type: StringConstructor;
    };
    delayTime: {
        type: NumberConstructor;
        default: number;
    };
    url: {
        type: StringConstructor;
        required: boolean;
    };
    method: {
        type: StringConstructor;
        default: string;
    };
    size: {
        type: import("vue").PropType<import("./upload.type").MaxSize | number>;
        default(): {
            maxFileSize: number;
            maxImgSize: number;
        };
    };
    handleResCode: {
        type: import("vue").PropType<(res: APIResponse) => boolean>;
        default(res: APIResponse): boolean;
    };
    headers: {
        type: import("vue").PropType<Headers>;
        default: () => {};
    };
    header: {
        type: import("vue").PropType<import("./upload.type").HeaderDataAttr | import("./upload.type").HeaderDataAttr[]>;
        default: () => any[];
    };
    tip: {
        type: StringConstructor;
        default: string;
    };
    validateName: {
        type: RegExpConstructor;
    };
    withCredentials: {
        type: BooleanConstructor;
        default: boolean;
    };
    limit: NumberConstructor;
    data: {
        type: import("vue").PropType<import("./upload.type").ExtraFormData | import("./upload.type").ExtraFormData[]>;
        default: () => any[];
    };
    formDataAttributes: {
        type: import("vue").PropType<import("./upload.type").FormDataAttr | import("./upload.type").FormDataAttr[]>;
        default: () => any[];
    };
    extCls: {
        type: StringConstructor;
        default: string;
    };
    customRequest: import("vue").PropType<import("./upload.type").UploadRequestHandler>;
    selectChange: {
        type: import("vue").PropType<(event: Event) => boolean | void>;
    };
    beforeUpload: {
        type: import("vue").PropType<(file: UploadRawFile, uploadFiles: File[]) => Promise<boolean> | boolean>;
    };
    beforeRemove: {
        type: import("vue").PropType<(file: UploadFile, uploadFiles: UploadFile[]) => Promise<boolean> | boolean>;
    };
    sliceUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    sliceUrl: {
        type: StringConstructor;
        default: string;
    };
    mergeUrl: {
        type: StringConstructor;
        default: string;
    };
    chunkSize: {
        type: NumberConstructor;
        default: number;
    };
    isShowPreview: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, () => JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("done" | "progress" | "error" | "delete" | "success" | "preview" | "exceed")[], "done" | "progress" | "error" | "delete" | "success" | "preview" | "exceed", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    type: {
        type: import("vue").PropType<import("./upload.type").Type>;
        default: import("./upload.type").Type;
        validator: (val: import("./upload.type").ETypes) => boolean;
    };
    theme: {
        type: import("vue").PropType<import("./upload.type").Theme>;
        default: import("./upload.type").Theme;
        validator: (val: EThemes) => boolean;
    };
    files: {
        type: import("vue").PropType<UploadFile[]>;
        default: () => UploadFile[];
    };
    name: {
        type: StringConstructor;
        default: string;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    accept: {
        type: StringConstructor;
    };
    delayTime: {
        type: NumberConstructor;
        default: number;
    };
    url: {
        type: StringConstructor;
        required: boolean;
    };
    method: {
        type: StringConstructor;
        default: string;
    };
    size: {
        type: import("vue").PropType<import("./upload.type").MaxSize | number>;
        default(): {
            maxFileSize: number;
            maxImgSize: number;
        };
    };
    handleResCode: {
        type: import("vue").PropType<(res: APIResponse) => boolean>;
        default(res: APIResponse): boolean;
    };
    headers: {
        type: import("vue").PropType<Headers>;
        default: () => {};
    };
    header: {
        type: import("vue").PropType<import("./upload.type").HeaderDataAttr | import("./upload.type").HeaderDataAttr[]>;
        default: () => any[];
    };
    tip: {
        type: StringConstructor;
        default: string;
    };
    validateName: {
        type: RegExpConstructor;
    };
    withCredentials: {
        type: BooleanConstructor;
        default: boolean;
    };
    limit: NumberConstructor;
    data: {
        type: import("vue").PropType<import("./upload.type").ExtraFormData | import("./upload.type").ExtraFormData[]>;
        default: () => any[];
    };
    formDataAttributes: {
        type: import("vue").PropType<import("./upload.type").FormDataAttr | import("./upload.type").FormDataAttr[]>;
        default: () => any[];
    };
    extCls: {
        type: StringConstructor;
        default: string;
    };
    customRequest: import("vue").PropType<import("./upload.type").UploadRequestHandler>;
    selectChange: {
        type: import("vue").PropType<(event: Event) => boolean | void>;
    };
    beforeUpload: {
        type: import("vue").PropType<(file: UploadRawFile, uploadFiles: File[]) => Promise<boolean> | boolean>;
    };
    beforeRemove: {
        type: import("vue").PropType<(file: UploadFile, uploadFiles: UploadFile[]) => Promise<boolean> | boolean>;
    };
    sliceUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    sliceUrl: {
        type: StringConstructor;
        default: string;
    };
    mergeUrl: {
        type: StringConstructor;
        default: string;
    };
    chunkSize: {
        type: NumberConstructor;
        default: number;
    };
    isShowPreview: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    onProgress?: (...args: any[]) => any;
    onError?: (...args: any[]) => any;
    onDelete?: (...args: any[]) => any;
    onPreview?: (...args: any[]) => any;
    onDone?: (...args: any[]) => any;
    onSuccess?: (...args: any[]) => any;
    onExceed?: (...args: any[]) => any;
}>, {
    name: string;
    type: "formdata" | "binary";
    data: import("./upload.type").ExtraFormData | import("./upload.type").ExtraFormData[];
    header: import("./upload.type").HeaderDataAttr | import("./upload.type").HeaderDataAttr[];
    size: number | import("./upload.type").MaxSize;
    multiple: boolean;
    disabled: boolean;
    theme: "button" | "picture" | "draggable";
    extCls: string;
    tip: string;
    files: UploadFile[];
    autoUpload: boolean;
    delayTime: number;
    method: string;
    handleResCode: (res: APIResponse) => boolean;
    headers: Headers;
    withCredentials: boolean;
    formDataAttributes: import("./upload.type").FormDataAttr | import("./upload.type").FormDataAttr[];
    sliceUpload: boolean;
    sliceUrl: string;
    mergeUrl: string;
    chunkSize: number;
    isShowPreview: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
