import type { Translator } from 'element-plus';
import type { LooseRequired } from '@vue/shared';
import type { SFCWithInstall } from 'element-plus/es/utils';
import type { DefineComponent, Ref, ComputedOptions, MethodOptions, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, ComputedRef, CSSProperties, EmitsOptions } from 'vue';
import { IFile } from '../..';
export interface listItem {
    name: string;
    value: any;
}
export interface Props {
    field: string;
    label: string;
    file: IFile;
    list: listItem[];
    removable?: boolean;
    addable?: boolean;
}
declare const _sfc_main: DefineComponent<{
    field: {
        type: StringConstructor;
        required: true;
    };
    label: {
        type: StringConstructor;
        required: true;
    };
    file: {
        type: null;
        required: true;
    };
    list: {
        type: ArrayConstructor;
        required: true;
    };
    removable: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    addable: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
}, {
    props: {
        field: string;
        label: string;
        file: IFile;
        list: listItem[];
        removable: boolean;
        addable: boolean;
    };
    tools: {
        name: string;
        icon: string;
    }[] | undefined;
    emit: (event: "add" | "remove" | "edit", ...args: any[]) => void;
    current: Ref<any>;
    handleToolClick: (item: any) => void;
    handleEdit: (item: listItem) => void;
    handleRemove: (item: listItem) => void;
    Panel: DefineComponent<unknown, object, {}, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<unknown>, {}>;
    DataItem: DefineComponent<{
        title: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        content: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        editable: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        removable: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        active: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        collapsible: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        clickable: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
    }, {
        props: {
            title: string;
            content: string;
            editable: boolean;
            removable: boolean;
            active: boolean;
            collapsible: boolean;
            clickable: boolean;
        };
        emit: (event: "click" | "remove" | "edit", ...args: any[]) => void;
        collapsed: Ref<boolean>;
        onEdit: () => void;
        onRemove: () => void;
        onClick: () => void;
        toggleCollapsed: () => void;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("click" | "remove" | "edit")[], "remove" | "click" | "edit", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
        title: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        content: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        editable: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        removable: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        active: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        collapsible: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
        clickable: {
            type: BooleanConstructor;
            required: false;
            default: boolean;
        };
    }>> & {
        onClick?: ((...args: any[]) => any) | undefined;
        onRemove?: ((...args: any[]) => any) | undefined;
        onEdit?: ((...args: any[]) => any) | undefined;
    }, {
        title: string;
        editable: boolean;
        content: string;
        removable: boolean;
        active: boolean;
        collapsible: boolean;
        clickable: boolean;
    }>;
    ElEmpty: SFCWithInstall<DefineComponent<{
        readonly image: {
            readonly type: StringConstructor;
            readonly default: "";
        };
        readonly imageSize: NumberConstructor;
        readonly description: {
            readonly type: StringConstructor;
            readonly default: "";
        };
    }, {
        props: Readonly<LooseRequired<Readonly<ExtractPropTypes<{
            readonly image: {
                readonly type: StringConstructor;
                readonly default: "";
            };
            readonly imageSize: NumberConstructor;
            readonly description: {
                readonly type: StringConstructor;
                readonly default: "";
            };
        }>> & {
            [x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined;
        }>>;
        t: Translator;
        ns: {
            namespace: ComputedRef<string>;
            b: (blockSuffix?: string | undefined) => string;
            e: (element?: string | undefined) => string;
            m: (modifier?: string | undefined) => string;
            be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
            em: (element?: string | undefined, modifier?: string | undefined) => string;
            bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
            bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
            is: {
                (name: string, state: boolean | undefined): string;
                (name: string): string;
            };
            cssVar: (object: Record<string, string>) => Record<string, string>;
            cssVarName: (name: string) => string;
            cssVarBlock: (object: Record<string, string>) => Record<string, string>;
            cssVarBlockName: (name: string) => string;
        };
        emptyDescription: ComputedRef<string>;
        imageStyle: ComputedRef<CSSProperties>;
        ImgEmpty: DefineComponent<{}, {
            ns: {
                namespace: ComputedRef<string>;
                b: (blockSuffix?: string | undefined) => string;
                e: (element?: string | undefined) => string;
                m: (modifier?: string | undefined) => string;
                be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
                em: (element?: string | undefined, modifier?: string | undefined) => string;
                bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
                bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
                is: {
                    (name: string, state: boolean | undefined): string;
                    (name: string): string;
                };
                cssVar: (object: Record<string, string>) => Record<string, string>;
                cssVarName: (name: string) => string;
                cssVarBlock: (object: Record<string, string>) => Record<string, string>;
                cssVarBlockName: (name: string) => string;
            };
            id: number;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
        readonly image: {
            readonly type: StringConstructor;
            readonly default: "";
        };
        readonly imageSize: NumberConstructor;
        readonly description: {
            readonly type: StringConstructor;
            readonly default: "";
        };
    }>>, {
        readonly description: string;
        readonly image: string;
    }>> & Record<string, any>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("add" | "remove" | "edit")[], "remove" | "add" | "edit", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    field: {
        type: StringConstructor;
        required: true;
    };
    label: {
        type: StringConstructor;
        required: true;
    };
    file: {
        type: null;
        required: true;
    };
    list: {
        type: ArrayConstructor;
        required: true;
    };
    removable: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    addable: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
}>> & {
    onRemove?: ((...args: any[]) => any) | undefined;
    onEdit?: ((...args: any[]) => any) | undefined;
    onAdd?: ((...args: any[]) => any) | undefined;
}, {
    addable: boolean;
    removable: boolean;
}>;
export default _sfc_main;
