import { ComputedRef, Ref, ShallowRef } from 'vue';
import { TdUploadProps, UploadFile, UploadRemoveContext } from '../type';
export type ValidateParams = Parameters<TdUploadProps['onValidate']>[0];
export default function useUpload(props: TdUploadProps): {
    toUploadFiles: ShallowRef<UploadFile[]>;
    uploadValue: Ref<UploadFile[]>;
    displayFiles: ComputedRef<UploadFile[]>;
    sizeOverLimitMessage: Ref<string>;
    uploading: Ref<boolean>;
    inputRef: Ref<HTMLInputElement>;
    disabled: Ref<boolean>;
    xhrReq: ShallowRef<{
        files: UploadFile[];
        xhrReq: XMLHttpRequest;
    }[]>;
    uploadFilePercent: (params: {
        file: UploadFile;
        percent: number;
    }) => void;
    uploadFiles: (toFiles?: UploadFile[]) => void;
    onFileChange: (files: File[]) => void;
    onNormalFileChange: (e: Event) => void;
    onInnerRemove: (context: UploadRemoveContext) => void;
    cancelUpload: (context?: {
        file?: UploadFile;
        e?: MouseEvent;
    }) => void;
};
