/// <reference types="node" />
import type { ShallowRef } from 'vue';
import type { UploadContentInstance } from './upload-content';
import type { UploadRawFile, UploadFile, UploadProps, UploadStatus, UploadFiles } from './upload';
export declare const useHandlers: (props: UploadProps, uploadRef: ShallowRef<UploadContentInstance | undefined>) => {
    /** @description two-way binding ref from props `fileList` */
    uploadFiles: import("vue").Ref<{
        name: string;
        percentage?: number;
        status: UploadStatus;
        size?: number;
        response?: unknown;
        uid: number;
        url?: string;
        raw?: {
            uid: number;
            readonly lastModified: number;
            readonly name: string;
            readonly webkitRelativePath: string;
            readonly size: number;
            readonly type: string;
            arrayBuffer: {
                (): Promise<ArrayBuffer>;
                (): Promise<ArrayBuffer>;
            };
            slice: {
                (start?: number, end?: number, contentType?: string): Blob;
                (start?: number, end?: number, contentType?: string): Blob;
            };
            stream: {
                (): ReadableStream<any>;
                (): NodeJS.ReadableStream;
            };
            text: {
                (): Promise<string>;
                (): Promise<string>;
            };
        };
    }[]> | import("vue").WritableComputedRef<UploadFiles>;
    abort: (file: UploadFile) => void;
    clearFiles: (states?: UploadStatus[]) => void;
    handleError: (err: import("./ajax").UploadAjaxError, rawFile: UploadRawFile) => void;
    handleProgress: (evt: import("./upload").UploadProgressEvent, rawFile: UploadRawFile) => void;
    handleStart: (rawFile: UploadRawFile) => void;
    handleSuccess: (response: any, rawFile: UploadRawFile) => unknown;
    handleRemove: (file: UploadRawFile | UploadFile, rawFile?: UploadRawFile) => void;
    submit: () => void;
    revokeFileObjectURL: (file: UploadFile) => void;
};
