import { PropType } from 'vue';
import { ElIconProps, ElButtonProps } from '../../ele-app/el';
import { StyleValue } from '../../ele-app/types';
import { DropdownItem } from '../types';

declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    /** 下拉菜单数据 */
    items: {
        type: PropType<DropdownItem[]>;
        required: true;
    };
    /** 选中的菜单 */
    selected: PropType<DropdownItem["command"]>;
    /** 自定义下拉菜单样式 */
    menuStyle: PropType<StyleValue>;
    /** 自定义图标属性 */
    iconProps: PropType<ElIconProps>;
    /** 尺寸 */
    size: PropType<ElButtonProps["size"]>;
}>, {
    handleItemClick: (item: DropdownItem) => void;
    handleWrapperContext: (e: MouseEvent) => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    itemClick: (_item: DropdownItem) => true;
    wrapperContext: (_e: MouseEvent) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    /** 下拉菜单数据 */
    items: {
        type: PropType<DropdownItem[]>;
        required: true;
    };
    /** 选中的菜单 */
    selected: PropType<DropdownItem["command"]>;
    /** 自定义下拉菜单样式 */
    menuStyle: PropType<StyleValue>;
    /** 自定义图标属性 */
    iconProps: PropType<ElIconProps>;
    /** 尺寸 */
    size: PropType<ElButtonProps["size"]>;
}>> & Readonly<{
    onItemClick?: ((_item: DropdownItem) => any) | undefined;
    onWrapperContext?: ((_e: MouseEvent) => any) | undefined;
}>, {}, {}, {
    DropdownMenuItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
        item: {
            type: PropType<DropdownItem>;
            required: true;
        };
        selected: PropType<DropdownItem["command"]>;
        iconProps: PropType<ElIconProps>;
    }>, {
        itemRef: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
        subMenuRef: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
        placement: import('vue').Ref<"rightEnd" | "leftStart" | "leftEnd" | undefined, "rightEnd" | "leftStart" | "leftEnd" | undefined>;
        handleItemClick: () => void;
        handleItemMouseenter: () => void;
        handleWrapperContext: (e: MouseEvent) => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
        itemClick: (_item: DropdownItem) => true;
        wrapperContext: (_e: MouseEvent) => true;
    }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
        item: {
            type: PropType<DropdownItem>;
            required: true;
        };
        selected: PropType<DropdownItem["command"]>;
        iconProps: PropType<ElIconProps>;
    }>> & Readonly<{
        onItemClick?: ((_item: DropdownItem) => any) | undefined;
        onWrapperContext?: ((_e: MouseEvent) => any) | undefined;
    }>, {}, {}, {
        ElIcon: import('element-plus/es/utils/index').SFCWithInstall<{
            new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
                readonly size: {
                    readonly type: import('vue/dist/vue.js').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
                    readonly required: false;
                    readonly validator: ((val: unknown) => boolean) | undefined;
                    __epPropKey: true;
                };
                readonly color: {
                    readonly type: import('vue/dist/vue.js').PropType<string>;
                    readonly required: false;
                    readonly validator: ((val: unknown) => boolean) | undefined;
                    __epPropKey: true;
                };
            }>>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
                P: {};
                B: {};
                D: {};
                C: {};
                M: {};
                Defaults: {};
            }, Readonly<import('vue').ExtractPropTypes<{
                readonly size: {
                    readonly type: import('vue/dist/vue.js').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
                    readonly required: false;
                    readonly validator: ((val: unknown) => boolean) | undefined;
                    __epPropKey: true;
                };
                readonly color: {
                    readonly type: import('vue/dist/vue.js').PropType<string>;
                    readonly required: false;
                    readonly validator: ((val: unknown) => boolean) | undefined;
                    __epPropKey: true;
                };
            }>>, {}, {}, {}, {}, {}>;
            __isFragment?: never;
            __isTeleport?: never;
            __isSuspense?: never;
        } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
            readonly size: {
                readonly type: import('vue/dist/vue.js').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly color: {
                readonly type: import('vue/dist/vue.js').PropType<string>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
        }>>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
            $slots: {
                default?(_: {}): any;
            };
        })>;
        ArrowRight: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
