import type { SetupContext } from '@vue/composition-api';
import type { TdUploadProps, UploadFile, UploadRemoveContext } from '../type';
export declare type ValidateParams = Parameters<TdUploadProps['onValidate']>[0];
export default function useUpload(props: TdUploadProps, context: SetupContext): {
    t: <T>(pattern: T, ...args: any[]) => any;
    localeConfig: import("@vue/composition-api").ComputedRef<{
        cancelUploadText?: string;
        dragger?: {
            clickAndDragText?: string;
            dragDropText?: string;
            draggingText?: string;
        };
        file?: {
            fileNameText?: string;
            fileOperationDateText?: string;
            fileOperationText?: string;
            fileSizeText?: string;
            fileStatusText?: string;
        };
        progress?: {
            failText?: string;
            successText?: string;
            uploadingText?: string;
            waitingText?: string;
        };
        sizeLimitMessage?: string;
        triggerUploadText?: {
            image?: string;
            normal?: string;
            fileInput?: string;
            reupload?: string;
            continueUpload?: string;
            delete?: string;
        };
    } & import("../..").UploadConfig>;
    classPrefix: import("@vue/composition-api").Ref<string>;
    triggerUploadText: import("@vue/composition-api").ComputedRef<any>;
    toUploadFiles: import("@vue/composition-api").Ref<{
        [x: string]: any;
        lastModified?: number;
        name?: string;
        percent?: number;
        raw?: {
            readonly lastModified: number;
            readonly name: string;
            readonly webkitRelativePath: string;
            readonly size: number;
            readonly type: string;
            arrayBuffer: () => Promise<ArrayBuffer>;
            slice: (start?: number, end?: number, contentType?: string) => Blob;
            stream: () => ReadableStream<any>;
            text: () => Promise<string>;
        };
        response?: {
            [x: string]: any;
        };
        size?: number;
        status?: "progress" | "waiting" | "success" | "fail";
        type?: string;
        uploadTime?: string;
        url?: string;
    }[]>;
    uploadValue: import("@vue/composition-api").Ref<UploadFile[]>;
    displayFiles: import("@vue/composition-api").ComputedRef<import("../../_common/js/upload/types").UploadFile[]>;
    sizeOverLimitMessage: import("@vue/composition-api").Ref<string>;
    uploading: import("@vue/composition-api").Ref<boolean>;
    tipsClasses: string;
    errorClasses: string[];
    placeholderClass: string;
    inputRef: import("@vue/composition-api").Ref<HTMLInputElement>;
    innerDisabled: import("@vue/composition-api").ComputedRef<boolean>;
    xhrReq: import("@vue/composition-api").Ref<{
        files: {
            [x: string]: any;
            lastModified?: number;
            name?: string;
            percent?: number;
            raw?: {
                readonly lastModified: number;
                readonly name: string;
                readonly webkitRelativePath: string;
                readonly size: number;
                readonly type: string;
                arrayBuffer: () => Promise<ArrayBuffer>;
                slice: (start?: number, end?: number, contentType?: string) => Blob;
                stream: () => ReadableStream<any>;
                text: () => Promise<string>;
            };
            response?: {
                [x: string]: any;
            };
            size?: number;
            status?: "progress" | "waiting" | "success" | "fail";
            type?: string;
            uploadTime?: string;
            url?: string;
        }[];
        xhrReq: {
            onreadystatechange: (this: XMLHttpRequest, ev: Event) => any;
            readonly readyState: number;
            readonly response: any;
            readonly responseText: string;
            responseType: XMLHttpRequestResponseType;
            readonly responseURL: string;
            readonly responseXML: Document;
            readonly status: number;
            readonly statusText: string;
            timeout: number;
            readonly upload: {
                addEventListener: {
                    <K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
                };
                removeEventListener: {
                    <K_1 extends keyof XMLHttpRequestEventTargetEventMap>(type: K_1, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K_1]) => any, options?: boolean | EventListenerOptions): void;
                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                };
                onabort: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                onerror: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                onload: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                onloadend: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                onloadstart: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                onprogress: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                ontimeout: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
                dispatchEvent: (event: Event) => boolean;
            };
            withCredentials: boolean;
            abort: () => void;
            getAllResponseHeaders: () => string;
            getResponseHeader: (name: string) => string;
            open: {
                (method: string, url: string | URL): void;
                (method: string, url: string | URL, async: boolean, username?: string, password?: string): void;
            };
            overrideMimeType: (mime: string) => void;
            send: (body?: Document | XMLHttpRequestBodyInit) => void;
            setRequestHeader: (name: string, value: string) => void;
            readonly DONE: number;
            readonly HEADERS_RECEIVED: number;
            readonly LOADING: number;
            readonly OPENED: number;
            readonly UNSENT: number;
            addEventListener: {
                <K_2 extends keyof XMLHttpRequestEventMap>(type: K_2, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions): void;
                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
            };
            removeEventListener: {
                <K_3 extends keyof XMLHttpRequestEventMap>(type: K_3, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K_3]) => any, options?: boolean | EventListenerOptions): void;
                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
            };
            onabort: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            onerror: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            onload: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            onloadend: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            onloadstart: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            onprogress: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            ontimeout: (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any;
            dispatchEvent: (event: Event) => boolean;
        };
    }[]>;
    uploadFiles: (toFiles?: UploadFile[]) => void;
    onFileChange: (files: FileList) => void;
    onNormalFileChange: (e: InputEvent) => void;
    onDragFileChange: (e: DragEvent) => void;
    onInnerRemove: (p: UploadRemoveContext) => void;
    triggerUpload: (e?: MouseEvent) => void;
    cancelUpload: (context?: {
        file?: UploadFile;
        e?: MouseEvent;
    }) => void;
    onInnerPreview: (p: {
        file: UploadFile;
        index: number;
        e: MouseEvent;
    }) => void;
    innerCancelUpload: () => void;
};
