import { UploadFile } from '@aplus-frontend/antdv';
import { PropType, VNode, DefineComponent, ExtractPropTypes, ComputedRef, ComponentOptionsMixin, PublicProps, RendererNode, RendererElement, ComponentProvideOptions } from 'vue';
import { ApUploadSlots, BeforeUpload, CustomRequest, FileUploadType } from './apUploadTypes';
import { GetOssAccess } from './hooks/useOss';
declare function clear(): void;
declare function setValue(val: any): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<ApUploadSlots> & ApUploadSlots;
    refs: {
        uploadRef: unknown;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ExtractPropTypes<{
    dirName: {
        type: StringConstructor;
        default: undefined;
    };
    type: {
        type: PropType<FileUploadType>;
        default: string;
    };
    value: {
        type: (ObjectConstructor | ArrayConstructor | StringConstructor)[];
        default: undefined;
    };
    needName: {
        type: (BooleanConstructor | ObjectConstructor)[];
        default: undefined;
    };
    accept: {
        type: StringConstructor;
        default: undefined;
    };
    maxSize: {
        type: NumberConstructor;
        default: undefined;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    subTitle: {
        type: (StringConstructor | (() => VNode) | null)[];
        default: string;
    };
    maxCount: {
        type: NumberConstructor;
        default: undefined;
    };
    beforeUpload: {
        type: PropType<BeforeUpload>;
        default: undefined;
    };
    customRequest: {
        type: PropType<CustomRequest>;
        default: undefined;
    };
    getOssAccess: {
        type: PropType<GetOssAccess>;
        default: undefined;
    };
    onChange: {
        type: FunctionConstructor;
        default: undefined;
    };
    maxSizeErrorMsg: {
        type: StringConstructor;
        default: undefined;
    };
    maxCountErrorMsg: {
        type: StringConstructor;
        default: undefined;
    };
    acceptErrorMsg: {
        type: StringConstructor;
        default: undefined;
    };
    onRemove: {
        type: FunctionConstructor;
        default: undefined;
    };
    showUploadErrorMsg: {
        type: BooleanConstructor;
        default: boolean;
    };
    baseDirName: {
        type: StringConstructor;
        default: string;
    };
    bucket: {
        type: StringConstructor;
        default: undefined;
    };
    showDownload: {
        type: PropType<boolean | ((file: UploadFile) => boolean)>;
        default: boolean;
    };
    showPreview: {
        type: PropType<boolean | ((file: UploadFile) => boolean)>;
        default: boolean;
    };
}>, {
    done: ComputedRef<boolean>;
    clear: typeof clear;
    setValue: typeof setValue;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    "update:value": (...args: any[]) => void;
}, string, PublicProps, Readonly< ExtractPropTypes<{
    dirName: {
        type: StringConstructor;
        default: undefined;
    };
    type: {
        type: PropType<FileUploadType>;
        default: string;
    };
    value: {
        type: (ObjectConstructor | ArrayConstructor | StringConstructor)[];
        default: undefined;
    };
    needName: {
        type: (BooleanConstructor | ObjectConstructor)[];
        default: undefined;
    };
    accept: {
        type: StringConstructor;
        default: undefined;
    };
    maxSize: {
        type: NumberConstructor;
        default: undefined;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    subTitle: {
        type: (StringConstructor | (() => VNode) | null)[];
        default: string;
    };
    maxCount: {
        type: NumberConstructor;
        default: undefined;
    };
    beforeUpload: {
        type: PropType<BeforeUpload>;
        default: undefined;
    };
    customRequest: {
        type: PropType<CustomRequest>;
        default: undefined;
    };
    getOssAccess: {
        type: PropType<GetOssAccess>;
        default: undefined;
    };
    onChange: {
        type: FunctionConstructor;
        default: undefined;
    };
    maxSizeErrorMsg: {
        type: StringConstructor;
        default: undefined;
    };
    maxCountErrorMsg: {
        type: StringConstructor;
        default: undefined;
    };
    acceptErrorMsg: {
        type: StringConstructor;
        default: undefined;
    };
    onRemove: {
        type: FunctionConstructor;
        default: undefined;
    };
    showUploadErrorMsg: {
        type: BooleanConstructor;
        default: boolean;
    };
    baseDirName: {
        type: StringConstructor;
        default: string;
    };
    bucket: {
        type: StringConstructor;
        default: undefined;
    };
    showDownload: {
        type: PropType<boolean | ((file: UploadFile) => boolean)>;
        default: boolean;
    };
    showPreview: {
        type: PropType<boolean | ((file: UploadFile) => boolean)>;
        default: boolean;
    };
}>> & Readonly<{
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
}>, {
    title: string;
    type: FileUploadType;
    onChange: Function;
    value: string | unknown[] | Record<string, any>;
    maxCount: number;
    maxSize: number;
    getOssAccess: GetOssAccess;
    needName: boolean | Record<string, any>;
    dirName: string;
    baseDirName: string;
    bucket: string;
    accept: string;
    subTitle: string | VNode< RendererNode, RendererElement, {
        [key: string]: any;
    }> | null;
    beforeUpload: BeforeUpload;
    customRequest: CustomRequest;
    maxSizeErrorMsg: string;
    maxCountErrorMsg: string;
    acceptErrorMsg: string;
    onRemove: Function;
    showUploadErrorMsg: boolean;
    showDownload: boolean | ((file: UploadFile) => boolean);
    showPreview: boolean | ((file: UploadFile) => boolean);
}, {}, {}, {}, string, ComponentProvideOptions, true, {
    uploadRef: unknown;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
