import { AttachmentSlots } from "./attachment-types";
import type { FileItem } from "./attachment-types";
type __VLS_Slots = AttachmentSlots;
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    uploadOptions: {
        readonly type: import("vue").PropType<import("@matechat/common/Attachment/common/attachment-types").UploadOptions>;
        readonly default: () => {};
    };
    disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    accept: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    dropPlaceholder: {
        readonly type: StringConstructor;
    };
    maxCount: {
        readonly type: NumberConstructor;
        readonly default: number;
    };
    maxSize: {
        readonly type: NumberConstructor;
        readonly default: number;
    };
    multiple: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    draggable: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    beforeUpload: {
        readonly type: import("vue").PropType<import("@matechat/common/Attachment/common/attachment-types").BeforeUpload>;
        readonly default: null;
    };
    getDropContainer: {
        readonly type: import("vue").PropType<() => HTMLElement>;
    };
    modelValue: {
        type: import("vue").PropType<FileItem<unknown, unknown>[]>;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    progress: (file: File, fileList: FileItem<unknown, unknown>[]) => void;
    error: (file: File, error: unknown, fileList: FileItem<unknown, unknown>[]) => void;
    change: (file: File, fileList: FileItem<unknown, unknown>[]) => void;
    drop: (files: File[]) => void;
    success: (file: File, response: unknown, fileList: FileItem<unknown, unknown>[]) => void;
    validChange: (e: import("@matechat/common/Attachment/common/attachment-types").IValidResult[]) => void;
    "update:modelValue": (value: FileItem<unknown, unknown>[]) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    uploadOptions: {
        readonly type: import("vue").PropType<import("@matechat/common/Attachment/common/attachment-types").UploadOptions>;
        readonly default: () => {};
    };
    disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    accept: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    dropPlaceholder: {
        readonly type: StringConstructor;
    };
    maxCount: {
        readonly type: NumberConstructor;
        readonly default: number;
    };
    maxSize: {
        readonly type: NumberConstructor;
        readonly default: number;
    };
    multiple: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    draggable: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    beforeUpload: {
        readonly type: import("vue").PropType<import("@matechat/common/Attachment/common/attachment-types").BeforeUpload>;
        readonly default: null;
    };
    getDropContainer: {
        readonly type: import("vue").PropType<() => HTMLElement>;
    };
    modelValue: {
        type: import("vue").PropType<FileItem<unknown, unknown>[]>;
    };
}>> & Readonly<{
    onProgress?: ((file: File, fileList: FileItem<unknown, unknown>[]) => any) | undefined;
    onError?: ((file: File, error: unknown, fileList: FileItem<unknown, unknown>[]) => any) | undefined;
    onChange?: ((file: File, fileList: FileItem<unknown, unknown>[]) => any) | undefined;
    onDrop?: ((files: File[]) => any) | undefined;
    onSuccess?: ((file: File, response: unknown, fileList: FileItem<unknown, unknown>[]) => any) | undefined;
    onValidChange?: ((e: import("@matechat/common/Attachment/common/attachment-types").IValidResult[]) => any) | undefined;
    "onUpdate:modelValue"?: ((value: FileItem<unknown, unknown>[]) => any) | undefined;
}>, {
    draggable: boolean;
    disabled: boolean;
    multiple: boolean;
    accept: string;
    uploadOptions: import("@matechat/common/Attachment/common/attachment-types").UploadOptions;
    maxCount: number;
    maxSize: number;
    beforeUpload: import("@matechat/common/Attachment/common/attachment-types").BeforeUpload;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
