import Vue, { VNode } from 'vue';
import { ScopedSlotReturnValue } from 'vue/types/vnode';
import { UploadConfig } from '../config-provider/config-receiver';
import { ClassName } from '../common';
import { HTMLInputEvent, SuccessContext, InnerProgressContext, UploadRemoveOptions, FlowRemoveContext } from './interface';
import { UploadChangeContext, UploadFile, UploadRemoveContext, RequestMethodResponse, SizeLimitObj } from './type';
declare const _default: import("vue/types/vue").ExtendedVue<{
    useGlobalIcon(tdIcon: Record<string, any>): import("../config-provider/type").IconConfig;
} & Record<never, any> & import("../config-provider/config-receiver").ConfigComponent & Vue & {
    t<T>(pattern: T, placement?: import("../config-provider/config-receiver").Placement): string;
} & {
    global: UploadConfig;
    classPrefix: string;
    componentName: string;
    commonSizeClassName: Record<string, string>;
    commonStatusClassName: Record<string, string>;
}, {
    formDisabled: any;
    dragActive: boolean;
    loadingFile: UploadFile;
    toUploadFiles: any[];
    errorMsg: string;
    showImageViewDialog: boolean;
    showImageViewUrl: string;
    xhrReq: XMLHttpRequest;
}, {
    emitChangeEvent(files: Array<UploadFile>, ctx: UploadChangeContext): void;
    emitRemoveEvent(ctx: UploadRemoveContext): void;
    handlePreviewImg(event: MouseEvent, file?: UploadFile): void;
    handleChange(event: HTMLInputEvent): void;
    handleDragChange(files: FileList): void;
    handleSingleRemove({ e, file }: {
        e: MouseEvent;
        file: File;
    }): void;
    handleMultipleRemove(options: UploadRemoveOptions): void;
    handleListRemove(context: FlowRemoveContext): void;
    uploadFiles(files: FileList): void;
    upload(currentFiles: UploadFile | UploadFile[], index?: number): Promise<void>;
    handleMockProgress(files: UploadFile[]): void;
    handleRequestMethod(files: UploadFile[]): void;
    handleRequestMethodResponse(res: RequestMethodResponse): boolean;
    multipleUpload(currentFiles: Array<UploadFile>): void;
    onError(options: {
        event?: ProgressEvent;
        file: UploadFile;
        files: UploadFile[];
        response?: any;
        resFormatted?: boolean;
    }): void;
    handleProgress({ event, file, files: currentFiles, percent, type, }: InnerProgressContext): void;
    handleSuccess({ event, file, files: currentFiles, response, }: SuccessContext): void;
    handlePreview({ file, event }: {
        file?: UploadFile;
        event: ProgressEvent;
    }): {
        file: UploadFile;
        event: ProgressEvent<EventTarget>;
    };
    triggerUpload(): void;
    handleDragenter(e: DragEvent): void;
    handleDragleave(e: DragEvent): void;
    handleBeforeUpload(file: File | UploadFile): Promise<boolean>;
    handleSizeLimit(fileSize: number): boolean;
    cancelUpload(): void;
    cancelPreviewImgDialog(): void;
    getDefaultTrigger(): JSX.Element;
    renderFileListDisplay(): any;
    renderInput(): JSX.Element;
    renderSingleDisplay(triggerElement: ScopedSlotReturnValue): JSX.Element;
    renderDraggerTrigger(): JSX.Element;
    renderTrigger(): any;
    renderCustom(triggerElement: VNode): JSX.Element;
}, {
    isSingleRequest: boolean;
    tDisabled: boolean;
    showTips: boolean;
    showCustomDisplay: boolean;
    showSingleDisplay: boolean;
    showImgCard: boolean;
    singleDraggable: boolean;
    showUploadList: boolean;
    showImgDialog: boolean;
    showErrorMsg: boolean;
    tipsClasses: ClassName;
    errorClasses: ClassName;
    uploadInOneRequest: boolean;
    canBatchUpload: boolean;
    uploadListTriggerText: string;
}, {
    accept: string;
    action: string;
    allowUploadDuplicateFile: boolean;
    autoUpload: boolean;
    beforeUpload: (file: File | UploadFile) => boolean | Promise<boolean>;
    data: Record<string, any> | ((file: File) => Record<string, any>);
    default: string | ((h: import("vue").CreateElement) => ScopedSlotReturnValue);
    disabled: boolean;
    draggable: boolean;
    fileListDisplay: (h: import("vue").CreateElement) => ScopedSlotReturnValue;
    files: UploadFile[];
    defaultFiles: UploadFile[];
    format: (file: File) => UploadFile;
    formatResponse: (response: any, context: import("./type").FormatResponseContext) => import("./type").ResponseType;
    headers: {
        [key: string]: string;
    };
    isBatchUpload: boolean;
    locale: UploadConfig;
    max: number;
    method: "option" | "get" | "post" | "POST" | "GET" | "PUT" | "OPTION" | "PATCH" | "put" | "patch";
    multiple: boolean;
    name: string;
    placeholder: string;
    requestMethod: (files: UploadFile | UploadFile[]) => Promise<RequestMethodResponse>;
    showUploadProgress: boolean;
    sizeLimit: number | SizeLimitObj;
    theme: "file" | "custom" | "image" | "file-input" | "file-flow" | "image-flow";
    tips: string;
    trigger: string | ((h: import("vue").CreateElement, props: import("./type").TriggerContext) => ScopedSlotReturnValue);
    uploadAllFilesInOneRequest: boolean;
    useMockProgress: boolean;
    withCredentials: boolean;
    onCancelUpload: () => void;
    onChange: (value: UploadFile[], context: UploadChangeContext) => void;
    onDragenter: (context: {
        e: DragEvent;
    }) => void;
    onDragleave: (context: {
        e: DragEvent;
    }) => void;
    onDrop: (context: {
        e: DragEvent;
    }) => void;
    onFail: (options: {
        e: ProgressEvent<EventTarget>;
        file: UploadFile;
    }) => void;
    onPreview: (options: {
        file: UploadFile;
        e: MouseEvent;
    }) => void;
    onProgress: (options: import("./type").ProgressContext) => void;
    onRemove: (context: UploadRemoveContext) => void;
    onSelectChange: (files: UploadFile[]) => void;
    onSuccess: (context: import("./type").SuccessContext) => void;
}>;
export default _default;
