import type { PropType, SlotsType } from 'vue';
import type { ComponentEmit, ExtractPublicPropTypes } from '../_util/interface';
export interface FileItem extends File {
    uid?: number | string;
}
export declare const inputFileProps: {
    readonly modelValue: {
        readonly type: PropType<FileItem[]>;
        readonly default: () => FileItem[];
    };
    readonly accept: {
        readonly type: PropType<string[]>;
        readonly default: () => string[];
    };
    readonly disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly multiple: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
};
export type InputFileProps = ExtractPublicPropTypes<typeof inputFileProps>;
export declare const inputFileDraggerProps: {
    readonly onFileTypeInvalid: {
        readonly type: PropType<(files: File[]) => void>;
    };
    readonly modelValue: {
        readonly type: PropType<FileItem[]>;
        readonly default: () => FileItem[];
    };
    readonly accept: {
        readonly type: PropType<string[]>;
        readonly default: () => string[];
    };
    readonly disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly multiple: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
};
export type InputFileDraggerProps = ExtractPublicPropTypes<typeof inputFileDraggerProps>;
export declare const EMIT_EVENTS: readonly ["update:modelValue", "change"];
export type InputFileEmit = ComponentEmit<typeof EMIT_EVENTS>;
export interface InputFileSlotsParams {
    default: Record<string, never>;
    fileList: {
        files: File[];
    };
}
export type InputFileSlots = SlotsType<InputFileSlotsParams>;
