import { Awaitable, UploadFileItem, UploadListType, UploadProgressEvent, UploadProps, UploadRawFile, UploadRequestHandler } from './upload.js';
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
export interface UploadContentProps extends Pick<UploadProps, "action" | "headers" | "method" | "data" | "name" | "multiple" | "accept" | "drag" | "directory" | "paste" | "withCredentials" | "autoUpload" | "disabled" | "limit" | "beforeUpload" | "httpRequest"> {
    fileList: UploadFileItem[];
    listType: UploadListType;
    inputId?: string;
    onStart: (file: UploadRawFile) => Awaitable<void>;
    onProgress: (event: UploadProgressEvent, file: UploadRawFile) => Awaitable<void>;
    onSuccess: (response: unknown, file: UploadRawFile) => Awaitable<void>;
    onError: (error: Error, file: UploadRawFile) => Awaitable<void>;
    onRemove: (file: UploadRawFile | UploadFileItem, options?: {
        skipBeforeRemove?: boolean;
        emitRemove?: boolean;
    }) => Awaitable<void>;
    onUpdateRawFile: (uid: string, rawFile: UploadRawFile) => Awaitable<void>;
    onExceed: (files: File[], fileList: UploadFileItem[]) => void;
}
declare function upload(rawFile: UploadRawFile): Promise<void>;
declare function handleClick(): void;
declare function abort(file?: UploadFileItem): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {
        inputRef: HTMLInputElement;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<UploadContentProps, {
    abort: typeof abort;
    upload: typeof upload;
    handleClick: typeof handleClick;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<UploadContentProps> & Readonly<{}>, {
    drag: boolean;
    paste: boolean;
    name: string;
    data: Awaitable<Record<string, unknown>> | ((file: UploadRawFile) => Awaitable<Record<string, unknown>>);
    disabled: boolean;
    multiple: boolean;
    inputId: string;
    action: string;
    accept: string;
    withCredentials: boolean;
    headers: Record<string, string | number | boolean | null | undefined>;
    method: string;
    limit: number;
    directory: boolean;
    autoUpload: boolean;
    beforeUpload: (file: UploadRawFile) => Awaitable<boolean | void | null | undefined | File | Blob>;
    httpRequest: UploadRequestHandler;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    inputRef: HTMLInputElement;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
