import { UploadFileT } from './types';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        /** 默认插槽（透传至 UploadSelect） */
        default?(props: Record<string, any>): any;
        /** 上传项插槽（透传至 UploadItem），可获取文件信息 */
        item?(props: Record<string, any>): any;
        /** 拖拽区域插槽（透传至 UploadSelect） */
        'select-drag'?(props: Record<string, any>): any;
        /** 拖拽区域额外插槽（透传至 UploadSelect） */
        'select-drag-extra'?(props: Record<string, any>): any;
        /** 选择区域下方额外内容 */
        'select-extra'?(): any;
        /** 添加按钮区域 */
        'select-add'?(): any;
        /** 添加按钮文字 */
        'select-add-label'?(): any;
    }> & {
        /** 默认插槽（透传至 UploadSelect） */
        default?(props: Record<string, any>): any;
        /** 上传项插槽（透传至 UploadItem），可获取文件信息 */
        item?(props: Record<string, any>): any;
        /** 拖拽区域插槽（透传至 UploadSelect） */
        'select-drag'?(props: Record<string, any>): any;
        /** 拖拽区域额外插槽（透传至 UploadSelect） */
        'select-drag-extra'?(props: Record<string, any>): any;
        /** 选择区域下方额外内容 */
        'select-extra'?(): any;
        /** 添加按钮区域 */
        'select-add'?(): any;
        /** 添加按钮文字 */
        'select-add-label'?(): any;
    };
    refs: {
        selectRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
            accept?: string;
            disabled?: boolean;
        }> & Readonly<{
            onSelected?: ((files: FileList) => any) | undefined;
        }>, {
            select: (multiple: boolean) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            selected: (files: FileList) => any;
        }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
            multipleInputRef: HTMLInputElement;
            inputRef: HTMLInputElement;
        }, HTMLDivElement, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly<{
            accept?: string;
            disabled?: boolean;
        }> & Readonly<{
            onSelected?: ((files: FileList) => any) | undefined;
        }>, {
            select: (multiple: boolean) => void;
        }, {}, {}, {}, {}> | null;
        uploadItems: (({
            $: import('vue').ComponentInternalInstance;
            $data: {};
            $props: {
                readonly file: UploadFileT;
                readonly listType: import('./types').UploadListTypeT;
                readonly showProgress: Boolean;
                readonly draggable: boolean;
                readonly onReplace?: ((file: UploadFileT, evt: Event) => any) | undefined;
                readonly onPreview?: ((file: UploadFileT, evt: Event) => any) | undefined;
                readonly onRemove?: ((file: UploadFileT, evt: Event) => any) | undefined;
                readonly onRetry?: ((file: UploadFileT, evt: Event) => any) | undefined;
                readonly onItemClick?: ((file: UploadFileT, evt: Event) => any) | undefined;
                readonly onDownload?: ((file: UploadFileT, evt: Event) => any) | undefined;
            } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
            $attrs: {
                [x: string]: unknown;
            };
            $refs: {
                [x: string]: unknown;
            } & {
                figureRef: ({
                    $: import('vue').ComponentInternalInstance;
                    $data: {};
                    $props: Partial<{
                        background: boolean;
                        hoverable: boolean;
                        colorful: boolean;
                        preview: boolean;
                        lazyPreview: boolean;
                        videoPoster: boolean;
                    }> & Omit<{
                        readonly background: boolean;
                        readonly src: string;
                        readonly hoverable: boolean;
                        readonly colorful: boolean;
                        readonly preview: boolean;
                        readonly lazyPreview: boolean;
                        readonly videoPoster: boolean;
                        readonly href?: string | undefined;
                        readonly alt?: string | undefined;
                        readonly ratio?: number | undefined;
                        readonly fit?: string | undefined;
                        readonly previewClose?: ("body" | "button" | "mask" | "none") | ("body" | "button" | "mask" | "none")[] | undefined;
                        readonly lazy?: boolean | IntersectionObserverInit | undefined;
                        readonly onError?: (() => any) | undefined;
                        readonly onLoad?: (() => any) | undefined;
                        readonly onPreview?: ((visible: boolean) => any) | undefined;
                    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "background" | "hoverable" | "colorful" | "preview" | "lazyPreview" | "videoPoster">;
                    $attrs: {
                        [x: string]: unknown;
                    };
                    $refs: {
                        [x: string]: unknown;
                    } & {
                        rootEl: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
                            tag: {
                                type: StringConstructor;
                                default: string;
                            };
                        }>> & Readonly<{}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
                            [key: string]: any;
                        }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
                            tag: string;
                        }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
                            P: {};
                            B: {};
                            D: {};
                            C: {};
                            M: {};
                            Defaults: {};
                        }, Readonly<import('vue').ExtractPropTypes<{
                            tag: {
                                type: StringConstructor;
                                default: string;
                            };
                        }>> & Readonly<{}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
                            [key: string]: any;
                        }>, {}, {}, {}, {
                            tag: string;
                        }> | null;
                        imgRef: HTMLImageElement;
                    };
                    $slots: Readonly<{
                        [name: string]: import('vue').Slot<any> | undefined;
                    }>;
                    $root: import('vue').ComponentPublicInstance | null;
                    $parent: import('vue').ComponentPublicInstance | null;
                    $host: Element | null;
                    $emit: ((event: "error") => void) & ((event: "load") => void) & ((event: "preview", visible: boolean) => void);
                    $el: any;
                    $options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
                        src: {
                            type: StringConstructor;
                            required: true;
                        };
                        ratio: {
                            type: NumberConstructor;
                        };
                        fit: {
                            type: StringConstructor;
                        };
                        alt: {
                            type: StringConstructor;
                        };
                        background: {
                            type: BooleanConstructor;
                        };
                        hoverable: {
                            type: BooleanConstructor;
                        };
                        href: {
                            type: StringConstructor;
                        };
                        colorful: {
                            type: BooleanConstructor;
                        };
                        preview: {
                            type: BooleanConstructor;
                        };
                        lazyPreview: {
                            type: BooleanConstructor;
                        };
                        videoPoster: {
                            type: BooleanConstructor;
                        };
                        previewClose: {
                            type: import('vue').PropType<("body" | "button" | "mask" | "none") | ("body" | "button" | "mask" | "none")[]>;
                        };
                        lazy: {
                            type: import('vue').PropType<boolean | IntersectionObserverInit>;
                        };
                    }>> & Readonly<{
                        onError?: (() => any) | undefined;
                        onLoad?: (() => any) | undefined;
                        onPreview?: ((visible: boolean) => any) | undefined;
                    }>, {
                        preview: (visible?: boolean) => void;
                    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                        error: () => any;
                        load: () => any;
                        preview: (visible: boolean) => any;
                    }, string, {
                        background: boolean;
                        hoverable: boolean;
                        colorful: boolean;
                        preview: boolean;
                        lazyPreview: boolean;
                        videoPoster: boolean;
                    }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
                        beforeCreate?: (() => void) | (() => void)[];
                        created?: (() => void) | (() => void)[];
                        beforeMount?: (() => void) | (() => void)[];
                        mounted?: (() => void) | (() => void)[];
                        beforeUpdate?: (() => void) | (() => void)[];
                        updated?: (() => void) | (() => void)[];
                        activated?: (() => void) | (() => void)[];
                        deactivated?: (() => void) | (() => void)[];
                        beforeDestroy?: (() => void) | (() => void)[];
                        beforeUnmount?: (() => void) | (() => void)[];
                        destroyed?: (() => void) | (() => void)[];
                        unmounted?: (() => void) | (() => void)[];
                        renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                        renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                        errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
                    };
                    $forceUpdate: () => void;
                    $nextTick: typeof import('vue').nextTick;
                    $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
                } & Readonly<{
                    background: boolean;
                    hoverable: boolean;
                    colorful: boolean;
                    preview: boolean;
                    lazyPreview: boolean;
                    videoPoster: boolean;
                }> & Omit<Readonly<import('vue').ExtractPropTypes<{
                    src: {
                        type: StringConstructor;
                        required: true;
                    };
                    ratio: {
                        type: NumberConstructor;
                    };
                    fit: {
                        type: StringConstructor;
                    };
                    alt: {
                        type: StringConstructor;
                    };
                    background: {
                        type: BooleanConstructor;
                    };
                    hoverable: {
                        type: BooleanConstructor;
                    };
                    href: {
                        type: StringConstructor;
                    };
                    colorful: {
                        type: BooleanConstructor;
                    };
                    preview: {
                        type: BooleanConstructor;
                    };
                    lazyPreview: {
                        type: BooleanConstructor;
                    };
                    videoPoster: {
                        type: BooleanConstructor;
                    };
                    previewClose: {
                        type: import('vue').PropType<("body" | "button" | "mask" | "none") | ("body" | "button" | "mask" | "none")[]>;
                    };
                    lazy: {
                        type: import('vue').PropType<boolean | IntersectionObserverInit>;
                    };
                }>> & Readonly<{
                    onError?: (() => any) | undefined;
                    onLoad?: (() => any) | undefined;
                    onPreview?: ((visible: boolean) => any) | undefined;
                }>, "background" | "hoverable" | "colorful" | "preview" | "lazyPreview" | "videoPoster"> & import('vue').ShallowUnwrapRef<{
                    preview: (visible?: boolean) => void;
                }> & {} & import('vue').ComponentCustomProperties & {} & {
                    $slots: {
                        error?(_: {}): any;
                        default?(_: {}): any;
                        'play-icon'?(_: {}): any;
                        content?(_: {}): any;
                        title?(_: {}): any;
                        preview?(_: {
                            image: string | undefined;
                        }): any;
                        'preview-extra'?(_: {}): any;
                    };
                }) | null;
            };
            $slots: Readonly<{
                [name: string]: import('vue').Slot<any> | undefined;
            }>;
            $root: import('vue').ComponentPublicInstance | null;
            $parent: import('vue').ComponentPublicInstance | null;
            $host: Element | null;
            $emit: ((event: "replace", file: UploadFileT, evt: Event) => void) & ((event: "preview", file: UploadFileT, evt: Event) => void) & ((event: "remove", file: UploadFileT, evt: Event) => void) & ((event: "retry", file: UploadFileT, evt: Event) => void) & ((event: "itemClick", file: UploadFileT, evt: Event) => void) & ((event: "download", file: UploadFileT, evt: Event) => void);
            $el: HTMLDivElement;
            $options: import('vue').ComponentOptionsBase<Readonly<import('./UploadItem.vue').UploadFileItemPropsT> & Readonly<{
                onReplace?: ((file: UploadFileT, evt: Event) => any) | undefined;
                onPreview?: ((file: UploadFileT, evt: Event) => any) | undefined;
                onRemove?: ((file: UploadFileT, evt: Event) => any) | undefined;
                onRetry?: ((file: UploadFileT, evt: Event) => any) | undefined;
                onItemClick?: ((file: UploadFileT, evt: Event) => any) | undefined;
                onDownload?: ((file: UploadFileT, evt: Event) => any) | undefined;
            }>, {
                preview: () => void;
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                replace: (file: UploadFileT, evt: Event) => any;
                preview: (file: UploadFileT, evt: Event) => any;
                remove: (file: UploadFileT, evt: Event) => any;
                retry: (file: UploadFileT, evt: Event) => any;
                itemClick: (file: UploadFileT, evt: Event) => any;
                download: (file: UploadFileT, evt: Event) => any;
            }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: typeof import('vue').nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
        } & Readonly<{}> & Omit<Readonly<import('./UploadItem.vue').UploadFileItemPropsT> & Readonly<{
            onReplace?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onPreview?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onRemove?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onRetry?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onItemClick?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onDownload?: ((file: UploadFileT, evt: Event) => any) | undefined;
        }>, "preview"> & import('vue').ShallowUnwrapRef<{
            preview: () => void;
        }> & {} & import('vue').ComponentCustomProperties & {} & {
            $slots: Partial<Record<"item", (_: {
                item: UploadFileT;
            }) => any>>;
        }) | null)[];
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    modelValue: {
        type: import('vue').PropType<UploadFileT[]>;
    };
    defaultFileList: {
        type: import('vue').PropType<UploadFileT[]>;
    };
    accept: {
        type: StringConstructor;
    };
    disabled: {
        type: BooleanConstructor;
    };
    multiple: {
        type: BooleanConstructor;
    };
    beforeSelect: {
        type: import('vue').PropType<(value: UploadFileT[]) => Promise<boolean> | boolean>;
    };
    onAfterSelect: {
        type: import('vue').PropType<(fileList: FileList) => Promise<Array<UploadFileT>>>;
    };
    downloadFile: {
        type: import('vue').PropType<(file: File) => void>;
    };
    btnLabel: {
        type: StringConstructor;
    };
    uploadRequest: {
        type: import('vue').PropType<(options: import('./types').UploadRequestOptionT) => import('./types').UploadRequestT>;
    };
    lazyUpload: {
        type: BooleanConstructor;
    };
    onBeforeUpload: {
        type: import('vue').PropType<(file: UploadFileT) => Promise<boolean | File>>;
    };
    onBeforeRemove: {
        type: import('vue').PropType<(file: UploadFileT) => Promise<boolean>>;
    };
    draggable: {
        type: BooleanConstructor;
    };
    dragLabel: {
        type: StringConstructor;
    };
    dragHoverLabel: {
        type: StringConstructor;
    };
    listType: {
        type: import('vue').PropType<"text" | "picture" | "picture-card">;
        default: string;
    };
    createThumbnail: {
        type: import('vue').PropType<(file: File) => Promise<string>>;
    };
    showProgress: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, {
    upload: () => Promise<UploadFileT[]> | undefined;
    select: () => Promise<void>;
    retry: (file: UploadFileT, force?: boolean) => void;
    replace: (file: UploadFileT) => void;
    replaceById: (id: string, newFile: UploadFileT) => void;
    replaceByIndex: (index: number, newFile: UploadFileT) => void;
    removeById: (id: string | number) => void;
    removeByIndex: (index: number) => void;
    removeAll: () => Promise<unknown>;
    previewItemByIndex: (index: number) => void;
    previewItemById: (id: number | string) => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    [x: string]: any;
} & {
    [x: string]: any;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    modelValue: {
        type: import('vue').PropType<UploadFileT[]>;
    };
    defaultFileList: {
        type: import('vue').PropType<UploadFileT[]>;
    };
    accept: {
        type: StringConstructor;
    };
    disabled: {
        type: BooleanConstructor;
    };
    multiple: {
        type: BooleanConstructor;
    };
    beforeSelect: {
        type: import('vue').PropType<(value: UploadFileT[]) => Promise<boolean> | boolean>;
    };
    onAfterSelect: {
        type: import('vue').PropType<(fileList: FileList) => Promise<Array<UploadFileT>>>;
    };
    downloadFile: {
        type: import('vue').PropType<(file: File) => void>;
    };
    btnLabel: {
        type: StringConstructor;
    };
    uploadRequest: {
        type: import('vue').PropType<(options: import('./types').UploadRequestOptionT) => import('./types').UploadRequestT>;
    };
    lazyUpload: {
        type: BooleanConstructor;
    };
    onBeforeUpload: {
        type: import('vue').PropType<(file: UploadFileT) => Promise<boolean | File>>;
    };
    onBeforeRemove: {
        type: import('vue').PropType<(file: UploadFileT) => Promise<boolean>>;
    };
    draggable: {
        type: BooleanConstructor;
    };
    dragLabel: {
        type: StringConstructor;
    };
    dragHoverLabel: {
        type: StringConstructor;
    };
    listType: {
        type: import('vue').PropType<"text" | "picture" | "picture-card">;
        default: string;
    };
    createThumbnail: {
        type: import('vue').PropType<(file: File) => Promise<string>>;
    };
    showProgress: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
}>, {
    disabled: boolean;
    multiple: boolean;
    lazyUpload: boolean;
    draggable: boolean;
    listType: "text" | "picture" | "picture-card";
    showProgress: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
    selectRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
        accept?: string;
        disabled?: boolean;
    }> & Readonly<{
        onSelected?: ((files: FileList) => any) | undefined;
    }>, {
        select: (multiple: boolean) => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
        selected: (files: FileList) => any;
    }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
        multipleInputRef: HTMLInputElement;
        inputRef: HTMLInputElement;
    }, HTMLDivElement, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<{
        accept?: string;
        disabled?: boolean;
    }> & Readonly<{
        onSelected?: ((files: FileList) => any) | undefined;
    }>, {
        select: (multiple: boolean) => void;
    }, {}, {}, {}, {}> | null;
    uploadItems: (({
        $: import('vue').ComponentInternalInstance;
        $data: {};
        $props: {
            readonly file: UploadFileT;
            readonly listType: import('./types').UploadListTypeT;
            readonly showProgress: Boolean;
            readonly draggable: boolean;
            readonly onReplace?: ((file: UploadFileT, evt: Event) => any) | undefined;
            readonly onPreview?: ((file: UploadFileT, evt: Event) => any) | undefined;
            readonly onRemove?: ((file: UploadFileT, evt: Event) => any) | undefined;
            readonly onRetry?: ((file: UploadFileT, evt: Event) => any) | undefined;
            readonly onItemClick?: ((file: UploadFileT, evt: Event) => any) | undefined;
            readonly onDownload?: ((file: UploadFileT, evt: Event) => any) | undefined;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        $attrs: {
            [x: string]: unknown;
        };
        $refs: {
            [x: string]: unknown;
        } & {
            figureRef: ({
                $: import('vue').ComponentInternalInstance;
                $data: {};
                $props: Partial<{
                    background: boolean;
                    hoverable: boolean;
                    colorful: boolean;
                    preview: boolean;
                    lazyPreview: boolean;
                    videoPoster: boolean;
                }> & Omit<{
                    readonly background: boolean;
                    readonly src: string;
                    readonly hoverable: boolean;
                    readonly colorful: boolean;
                    readonly preview: boolean;
                    readonly lazyPreview: boolean;
                    readonly videoPoster: boolean;
                    readonly href?: string | undefined;
                    readonly alt?: string | undefined;
                    readonly ratio?: number | undefined;
                    readonly fit?: string | undefined;
                    readonly previewClose?: ("body" | "button" | "mask" | "none") | ("body" | "button" | "mask" | "none")[] | undefined;
                    readonly lazy?: boolean | IntersectionObserverInit | undefined;
                    readonly onError?: (() => any) | undefined;
                    readonly onLoad?: (() => any) | undefined;
                    readonly onPreview?: ((visible: boolean) => any) | undefined;
                } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "background" | "hoverable" | "colorful" | "preview" | "lazyPreview" | "videoPoster">;
                $attrs: {
                    [x: string]: unknown;
                };
                $refs: {
                    [x: string]: unknown;
                } & {
                    rootEl: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
                        tag: {
                            type: StringConstructor;
                            default: string;
                        };
                    }>> & Readonly<{}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
                        [key: string]: any;
                    }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
                        tag: string;
                    }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
                        P: {};
                        B: {};
                        D: {};
                        C: {};
                        M: {};
                        Defaults: {};
                    }, Readonly<import('vue').ExtractPropTypes<{
                        tag: {
                            type: StringConstructor;
                            default: string;
                        };
                    }>> & Readonly<{}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
                        [key: string]: any;
                    }>, {}, {}, {}, {
                        tag: string;
                    }> | null;
                    imgRef: HTMLImageElement;
                };
                $slots: Readonly<{
                    [name: string]: import('vue').Slot<any> | undefined;
                }>;
                $root: import('vue').ComponentPublicInstance | null;
                $parent: import('vue').ComponentPublicInstance | null;
                $host: Element | null;
                $emit: ((event: "error") => void) & ((event: "load") => void) & ((event: "preview", visible: boolean) => void);
                $el: any;
                $options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
                    src: {
                        type: StringConstructor;
                        required: true;
                    };
                    ratio: {
                        type: NumberConstructor;
                    };
                    fit: {
                        type: StringConstructor;
                    };
                    alt: {
                        type: StringConstructor;
                    };
                    background: {
                        type: BooleanConstructor;
                    };
                    hoverable: {
                        type: BooleanConstructor;
                    };
                    href: {
                        type: StringConstructor;
                    };
                    colorful: {
                        type: BooleanConstructor;
                    };
                    preview: {
                        type: BooleanConstructor;
                    };
                    lazyPreview: {
                        type: BooleanConstructor;
                    };
                    videoPoster: {
                        type: BooleanConstructor;
                    };
                    previewClose: {
                        type: import('vue').PropType<("body" | "button" | "mask" | "none") | ("body" | "button" | "mask" | "none")[]>;
                    };
                    lazy: {
                        type: import('vue').PropType<boolean | IntersectionObserverInit>;
                    };
                }>> & Readonly<{
                    onError?: (() => any) | undefined;
                    onLoad?: (() => any) | undefined;
                    onPreview?: ((visible: boolean) => any) | undefined;
                }>, {
                    preview: (visible?: boolean) => void;
                }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                    error: () => any;
                    load: () => any;
                    preview: (visible: boolean) => any;
                }, string, {
                    background: boolean;
                    hoverable: boolean;
                    colorful: boolean;
                    preview: boolean;
                    lazyPreview: boolean;
                    videoPoster: boolean;
                }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
                    beforeCreate?: (() => void) | (() => void)[];
                    created?: (() => void) | (() => void)[];
                    beforeMount?: (() => void) | (() => void)[];
                    mounted?: (() => void) | (() => void)[];
                    beforeUpdate?: (() => void) | (() => void)[];
                    updated?: (() => void) | (() => void)[];
                    activated?: (() => void) | (() => void)[];
                    deactivated?: (() => void) | (() => void)[];
                    beforeDestroy?: (() => void) | (() => void)[];
                    beforeUnmount?: (() => void) | (() => void)[];
                    destroyed?: (() => void) | (() => void)[];
                    unmounted?: (() => void) | (() => void)[];
                    renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                    renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                    errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
                };
                $forceUpdate: () => void;
                $nextTick: typeof import('vue').nextTick;
                $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
            } & Readonly<{
                background: boolean;
                hoverable: boolean;
                colorful: boolean;
                preview: boolean;
                lazyPreview: boolean;
                videoPoster: boolean;
            }> & Omit<Readonly<import('vue').ExtractPropTypes<{
                src: {
                    type: StringConstructor;
                    required: true;
                };
                ratio: {
                    type: NumberConstructor;
                };
                fit: {
                    type: StringConstructor;
                };
                alt: {
                    type: StringConstructor;
                };
                background: {
                    type: BooleanConstructor;
                };
                hoverable: {
                    type: BooleanConstructor;
                };
                href: {
                    type: StringConstructor;
                };
                colorful: {
                    type: BooleanConstructor;
                };
                preview: {
                    type: BooleanConstructor;
                };
                lazyPreview: {
                    type: BooleanConstructor;
                };
                videoPoster: {
                    type: BooleanConstructor;
                };
                previewClose: {
                    type: import('vue').PropType<("body" | "button" | "mask" | "none") | ("body" | "button" | "mask" | "none")[]>;
                };
                lazy: {
                    type: import('vue').PropType<boolean | IntersectionObserverInit>;
                };
            }>> & Readonly<{
                onError?: (() => any) | undefined;
                onLoad?: (() => any) | undefined;
                onPreview?: ((visible: boolean) => any) | undefined;
            }>, "background" | "hoverable" | "colorful" | "preview" | "lazyPreview" | "videoPoster"> & import('vue').ShallowUnwrapRef<{
                preview: (visible?: boolean) => void;
            }> & {} & import('vue').ComponentCustomProperties & {} & {
                $slots: {
                    error?(_: {}): any;
                    default?(_: {}): any;
                    'play-icon'?(_: {}): any;
                    content?(_: {}): any;
                    title?(_: {}): any;
                    preview?(_: {
                        image: string | undefined;
                    }): any;
                    'preview-extra'?(_: {}): any;
                };
            }) | null;
        };
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any> | undefined;
        }>;
        $root: import('vue').ComponentPublicInstance | null;
        $parent: import('vue').ComponentPublicInstance | null;
        $host: Element | null;
        $emit: ((event: "replace", file: UploadFileT, evt: Event) => void) & ((event: "preview", file: UploadFileT, evt: Event) => void) & ((event: "remove", file: UploadFileT, evt: Event) => void) & ((event: "retry", file: UploadFileT, evt: Event) => void) & ((event: "itemClick", file: UploadFileT, evt: Event) => void) & ((event: "download", file: UploadFileT, evt: Event) => void);
        $el: HTMLDivElement;
        $options: import('vue').ComponentOptionsBase<Readonly<import('./UploadItem.vue').UploadFileItemPropsT> & Readonly<{
            onReplace?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onPreview?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onRemove?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onRetry?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onItemClick?: ((file: UploadFileT, evt: Event) => any) | undefined;
            onDownload?: ((file: UploadFileT, evt: Event) => any) | undefined;
        }>, {
            preview: () => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            replace: (file: UploadFileT, evt: Event) => any;
            preview: (file: UploadFileT, evt: Event) => any;
            remove: (file: UploadFileT, evt: Event) => any;
            retry: (file: UploadFileT, evt: Event) => any;
            itemClick: (file: UploadFileT, evt: Event) => any;
            download: (file: UploadFileT, evt: Event) => any;
        }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof import('vue').nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
    } & Readonly<{}> & Omit<Readonly<import('./UploadItem.vue').UploadFileItemPropsT> & Readonly<{
        onReplace?: ((file: UploadFileT, evt: Event) => any) | undefined;
        onPreview?: ((file: UploadFileT, evt: Event) => any) | undefined;
        onRemove?: ((file: UploadFileT, evt: Event) => any) | undefined;
        onRetry?: ((file: UploadFileT, evt: Event) => any) | undefined;
        onItemClick?: ((file: UploadFileT, evt: Event) => any) | undefined;
        onDownload?: ((file: UploadFileT, evt: Event) => any) | undefined;
    }>, "preview"> & import('vue').ShallowUnwrapRef<{
        preview: () => void;
    }> & {} & import('vue').ComponentCustomProperties & {} & {
        $slots: Partial<Record<"item", (_: {
            item: UploadFileT;
        }) => any>>;
    }) | null)[];
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
