import { PropType } from 'vue';
import { Interceptor } from '../../utils/interceptor';
import { UploaderFileListItem, UploaderResultType, UploaderMaxSize, getSizeStyle } from '../../utils/helpers';
import { UploaderAfterRead, UploaderBeforeRead } from './types/upload';
declare const _sfc_main: import("vue").DefineComponent<{
    /**
     * 上传组件类型
     *
     * @type {String}
     *
     * select (点击选择)
     *
     * drag (支持拖动)
     */
    type: {
        type: StringConstructor;
        validator(value: string): boolean;
        default: string;
    };
    /**
     * 接受的上传类型
     *
     * @type {String}
     */
    accept: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 拖拽接受的上传类型后缀
     *
     * @type {Array}
     */
    dragAccept: {
        type: ArrayConstructor;
    };
    /**
     * 是否支持多选文件
     *
     * @type {Boolean}
     */
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否禁用
     *
     * @type {Boolean}
     */
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否将上传区域设置为只读状态
     *
     * @type {Boolean}
     */
    readonly: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 图片选取模式，可选值为 camera (直接调起摄像头)
     *
     * @type {String}
     */
    capture: {
        type: PropType<any>;
    };
    /**
     * 文件读取结果类型，可选值为 file text dataUrl url
     *
     * @type {String}
     */
    resultType: {
        type: PropType<UploaderResultType>;
        default: string;
    };
    /**
     * 返回的数据
     *
     * @type {Array}
     */
    modelValue: {
        type: PropType<UploaderFileListItem[]>;
        default: () => any[];
    };
    /**
     * 文件大小限制，单位为 byte
     *
     * @type {number | string | (file: File) => boolean}
     */
    maxSize: {
        type: PropType<UploaderMaxSize>;
        default: number;
    };
    /**
     * 文件上传数量限制
     *
     * @type {Number, String}
     */
    maxCount: {
        type: (NumberConstructor | StringConstructor)[];
        default: number;
    };
    /**
     * 文件读取完成后的回调函数
     *
     * @type {Boolean}
     */
    afterRead: {
        type: PropType<UploaderAfterRead>;
    };
    /**
     * before-read	文件读取前的回调函数，返回 false 可终止文件读取，支持返回 Promise
     *
     * @type {Function}
     */
    beforeRead: {
        type: PropType<UploaderBeforeRead>;
    };
    /**
     * 标识符，可以在回调函数的第二项参数中获取
     *
     * @type {Number, String}
     */
    name: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * 错误时的图标
     *
     * @type {String}
     */
    failedIcon: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 是否展示删除按钮
     *
     * @type {Boolean}
     */
    deletable: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否展示上传区域
     *
     * @type {Boolean}
     */
    showUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 预览图和上传区域的尺寸，默认单位为 px
     *
     * @type {Number | String}
     */
    previewSize: (NumberConstructor | StringConstructor)[];
    /**
     * 是否在上传完成后展示预览图
     *
     * @type {Boolean}
     */
    previewImage: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 文件删除前的回调函数，返回 false 可终止文件读取，
     * 支持返回 Promise
     *
     * @type {Function}
     */
    beforeDelete: {
        type: PropType<Interceptor>;
    };
    /**
     * 预览图片放大
     *
     * @type {Boolean}
     */
    previewFullImage: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 预览图片开始位置下标
     *
     * @type {Boolean}
     */
    previewImageInitialIndex: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 防止body滚动
     *
     * @type {Boolean}
     */
    bodyOverflow: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 上传方向
     *
     * @type {String}
     */
    uploadDirection: {
        type: StringConstructor;
        validator(value: string): boolean;
        default: string;
    };
    /**
     * 预览图裁剪模式
     *
     * @type {String}
     */
    imageFit: {
        type: StringConstructor;
        validator(value: string): boolean;
        default: string;
    };
}, {
    prefixCls: string;
    data: {
        fileList: {
            url?: string;
            file?: {
                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<Uint8Array>;
                text: () => Promise<string>;
            };
            content?: string;
            status?: "" | "done" | "uploading" | "failed";
            message?: string;
            beforeDelete?: import("../../utils/helpers").Interceptor;
        }[];
        dragOver: boolean;
        imagePreview: boolean;
        imagePreviewList: string[];
        imagePreviewInitialIndex: number;
    };
    input: any;
    inputWrapClasses: import("vue").ComputedRef<{
        [x: string]: boolean;
    }[]>;
    inputContentClasses: import("vue").ComputedRef<{
        [x: string]: boolean;
    }[]>;
    renderUpload: import("vue").ComputedRef<boolean>;
    handleClickInput: () => void;
    handleDrag: (e: DragEvent) => void;
    handleDragOver: () => void;
    handleDragleave: () => void;
    handleChange: (event: any) => void;
    handleRemove: (file: File, index: number) => void;
    handlePreview: (file: File, index: number) => void;
    uploadFiles: (files: File | File[]) => void;
    getSizeStyle: typeof getSizeStyle;
    handleClosePreview: () => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "on-oversize" | "on-delete" | "on-preview" | "on-drag-upload-error" | "on-close-preview")[], "update:modelValue" | "on-oversize" | "on-delete" | "on-preview" | "on-drag-upload-error" | "on-close-preview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    /**
     * 上传组件类型
     *
     * @type {String}
     *
     * select (点击选择)
     *
     * drag (支持拖动)
     */
    type: {
        type: StringConstructor;
        validator(value: string): boolean;
        default: string;
    };
    /**
     * 接受的上传类型
     *
     * @type {String}
     */
    accept: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 拖拽接受的上传类型后缀
     *
     * @type {Array}
     */
    dragAccept: {
        type: ArrayConstructor;
    };
    /**
     * 是否支持多选文件
     *
     * @type {Boolean}
     */
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否禁用
     *
     * @type {Boolean}
     */
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否将上传区域设置为只读状态
     *
     * @type {Boolean}
     */
    readonly: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 图片选取模式，可选值为 camera (直接调起摄像头)
     *
     * @type {String}
     */
    capture: {
        type: PropType<any>;
    };
    /**
     * 文件读取结果类型，可选值为 file text dataUrl url
     *
     * @type {String}
     */
    resultType: {
        type: PropType<UploaderResultType>;
        default: string;
    };
    /**
     * 返回的数据
     *
     * @type {Array}
     */
    modelValue: {
        type: PropType<UploaderFileListItem[]>;
        default: () => any[];
    };
    /**
     * 文件大小限制，单位为 byte
     *
     * @type {number | string | (file: File) => boolean}
     */
    maxSize: {
        type: PropType<UploaderMaxSize>;
        default: number;
    };
    /**
     * 文件上传数量限制
     *
     * @type {Number, String}
     */
    maxCount: {
        type: (NumberConstructor | StringConstructor)[];
        default: number;
    };
    /**
     * 文件读取完成后的回调函数
     *
     * @type {Boolean}
     */
    afterRead: {
        type: PropType<UploaderAfterRead>;
    };
    /**
     * before-read	文件读取前的回调函数，返回 false 可终止文件读取，支持返回 Promise
     *
     * @type {Function}
     */
    beforeRead: {
        type: PropType<UploaderBeforeRead>;
    };
    /**
     * 标识符，可以在回调函数的第二项参数中获取
     *
     * @type {Number, String}
     */
    name: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * 错误时的图标
     *
     * @type {String}
     */
    failedIcon: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 是否展示删除按钮
     *
     * @type {Boolean}
     */
    deletable: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否展示上传区域
     *
     * @type {Boolean}
     */
    showUpload: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 预览图和上传区域的尺寸，默认单位为 px
     *
     * @type {Number | String}
     */
    previewSize: (NumberConstructor | StringConstructor)[];
    /**
     * 是否在上传完成后展示预览图
     *
     * @type {Boolean}
     */
    previewImage: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 文件删除前的回调函数，返回 false 可终止文件读取，
     * 支持返回 Promise
     *
     * @type {Function}
     */
    beforeDelete: {
        type: PropType<Interceptor>;
    };
    /**
     * 预览图片放大
     *
     * @type {Boolean}
     */
    previewFullImage: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 预览图片开始位置下标
     *
     * @type {Boolean}
     */
    previewImageInitialIndex: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 防止body滚动
     *
     * @type {Boolean}
     */
    bodyOverflow: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 上传方向
     *
     * @type {String}
     */
    uploadDirection: {
        type: StringConstructor;
        validator(value: string): boolean;
        default: string;
    };
    /**
     * 预览图裁剪模式
     *
     * @type {String}
     */
    imageFit: {
        type: StringConstructor;
        validator(value: string): boolean;
        default: string;
    };
}>> & {
    "onUpdate:modelValue"?: (...args: any[]) => any;
    "onOn-oversize"?: (...args: any[]) => any;
    "onOn-delete"?: (...args: any[]) => any;
    "onOn-preview"?: (...args: any[]) => any;
    "onOn-drag-upload-error"?: (...args: any[]) => any;
    "onOn-close-preview"?: (...args: any[]) => any;
}, {
    name: string | number;
    type: string;
    modelValue: UploaderFileListItem[];
    disabled: boolean;
    readonly: boolean;
    multiple: boolean;
    failedIcon: string;
    deletable: boolean;
    previewFullImage: boolean;
    imageFit: string;
    bodyOverflow: boolean;
    accept: string;
    resultType: UploaderResultType;
    maxSize: UploaderMaxSize;
    maxCount: string | number;
    showUpload: boolean;
    previewImage: boolean;
    previewImageInitialIndex: number;
    uploadDirection: string;
}>;
export default _sfc_main;
