import { PropType } from 'vue';
import { CopperOptions, UploadFile } from '../upload';
import { NOOP } from '../../../utils';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<Record<string, any>> & Record<string, any>;
    refs: {
        copperRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {
            open(source: File | string): Promise<{
                file: File;
            }>;
            close(): void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
            cropperRef: unknown;
        }, any, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly<{}> & Readonly<{}>, {
            open(source: File | string): Promise<{
                file: File;
            }>;
            close(): void;
        }, {}, {}, {}, {}> | null;
        inputRef: HTMLInputElement;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    fileList: {
        type: PropType<UploadFile[]>;
        default: () => never[];
    };
    disabled: {
        type: BooleanConstructor;
    };
    limit: {
        type: NumberConstructor;
    };
    multiple: {
        type: BooleanConstructor;
    };
    suffixes: {
        type: PropType<string[]>;
    };
    onExceed: {
        type: PropType<(files: File[]) => void>;
        default: typeof NOOP;
    };
    showTrigger: {
        type: BooleanConstructor;
    };
    autoCropper: {
        type: BooleanConstructor;
    };
    copperOptions: {
        type: PropType<CopperOptions>;
    };
}>, {
    choose(): void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    remove: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    fileList: {
        type: PropType<UploadFile[]>;
        default: () => never[];
    };
    disabled: {
        type: BooleanConstructor;
    };
    limit: {
        type: NumberConstructor;
    };
    multiple: {
        type: BooleanConstructor;
    };
    suffixes: {
        type: PropType<string[]>;
    };
    onExceed: {
        type: PropType<(files: File[]) => void>;
        default: typeof NOOP;
    };
    showTrigger: {
        type: BooleanConstructor;
    };
    autoCropper: {
        type: BooleanConstructor;
    };
    copperOptions: {
        type: PropType<CopperOptions>;
    };
}>> & Readonly<{
    onRemove?: ((...args: any[]) => any) | undefined;
}>, {
    disabled: boolean;
    multiple: boolean;
    showTrigger: boolean;
    autoCropper: boolean;
    fileList: UploadFile[];
    onExceed: (files: File[]) => void;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
    copperRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {
        open(source: File | string): Promise<{
            file: File;
        }>;
        close(): void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
        cropperRef: unknown;
    }, any, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<{}> & Readonly<{}>, {
        open(source: File | string): Promise<{
            file: File;
        }>;
        close(): void;
    }, {}, {}, {}, {}> | null;
    inputRef: HTMLInputElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
