import { PropType } from 'vue';
import { isExternalLink } from '../../utils/core';
import { MenuItem, MenuItemEvent } from '../types';

declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    /** 菜单项数据 */
    item: {
        type: PropType<MenuItem>;
        required: true;
    };
    /** 是否需要标题 */
    showTitle: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** 是否需要链接 */
    showLink: BooleanConstructor;
}>, {
    isExternalLink: typeof isExternalLink;
    handleItemClick: MenuItemEvent;
    handleItemMouseenter: MenuItemEvent;
    handleItemMouseleave: MenuItemEvent;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    itemClick: (_item: MenuItem, _e: MouseEvent) => true;
    itemMouseenter: (_item: MenuItem, _e: MouseEvent) => true;
    itemMouseleave: (_item: MenuItem, _e: MouseEvent) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    /** 菜单项数据 */
    item: {
        type: PropType<MenuItem>;
        required: true;
    };
    /** 是否需要标题 */
    showTitle: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** 是否需要链接 */
    showLink: BooleanConstructor;
}>> & Readonly<{
    onItemClick?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
    onItemMouseenter?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
    onItemMouseleave?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
}>, {
    showLink: boolean;
    showTitle: boolean;
}, {}, {
    ElIcon: {
        new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
            readonly size: {
                readonly type: PropType<string | number>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly color: {
                readonly type: 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: PropType<string | number>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly color: {
                readonly type: 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: PropType<string | number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly color: {
            readonly type: 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;
        };
    }) & import('vue').Plugin;
    ElBadge: {
        new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
            readonly value: {
                readonly type: PropType<string | number>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: "";
            };
            readonly max: {
                readonly type: PropType<number>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: 99;
            };
            readonly isDot: BooleanConstructor;
            readonly hidden: BooleanConstructor;
            readonly type: {
                readonly type: PropType<"success" | "primary" | "warning" | "info" | "danger">;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: "danger";
            };
            readonly showZero: {
                readonly type: PropType<boolean>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: true;
            };
            readonly color: StringConstructor;
            readonly badgeStyle: {
                readonly type: PropType<import('vue').StyleValue>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly offset: {
                readonly type: PropType<[number, number]>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: readonly [0, 0];
            };
            readonly badgeClass: {
                readonly type: PropType<string>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
        }>>, {
            content: import('vue').ComputedRef<string>;
        }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, {
            readonly hidden: boolean;
            readonly offset: [number, number];
            readonly value: string | number;
            readonly type: "success" | "primary" | "warning" | "info" | "danger";
            readonly max: number;
            readonly showZero: boolean;
            readonly isDot: boolean;
        }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly<import('vue').ExtractPropTypes<{
            readonly value: {
                readonly type: PropType<string | number>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: "";
            };
            readonly max: {
                readonly type: PropType<number>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: 99;
            };
            readonly isDot: BooleanConstructor;
            readonly hidden: BooleanConstructor;
            readonly type: {
                readonly type: PropType<"success" | "primary" | "warning" | "info" | "danger">;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: "danger";
            };
            readonly showZero: {
                readonly type: PropType<boolean>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: true;
            };
            readonly color: StringConstructor;
            readonly badgeStyle: {
                readonly type: PropType<import('vue').StyleValue>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly offset: {
                readonly type: PropType<[number, number]>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            } & {
                readonly default: readonly [0, 0];
            };
            readonly badgeClass: {
                readonly type: PropType<string>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
        }>>, {
            content: import('vue').ComputedRef<string>;
        }, {}, {}, {}, {
            readonly hidden: boolean;
            readonly offset: [number, number];
            readonly value: string | number;
            readonly type: "success" | "primary" | "warning" | "info" | "danger";
            readonly max: number;
            readonly showZero: boolean;
            readonly isDot: boolean;
        }>;
        __isFragment?: never;
        __isTeleport?: never;
        __isSuspense?: never;
    } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
        readonly value: {
            readonly type: PropType<string | number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        readonly max: {
            readonly type: PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 99;
        };
        readonly isDot: BooleanConstructor;
        readonly hidden: BooleanConstructor;
        readonly type: {
            readonly type: PropType<"success" | "primary" | "warning" | "info" | "danger">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "danger";
        };
        readonly showZero: {
            readonly type: PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        readonly color: StringConstructor;
        readonly badgeStyle: {
            readonly type: PropType<import('vue').StyleValue>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly offset: {
            readonly type: PropType<[number, number]>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: readonly [0, 0];
        };
        readonly badgeClass: {
            readonly type: PropType<string>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
    }>>, {
        content: import('vue').ComputedRef<string>;
    }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, string, {
        readonly hidden: boolean;
        readonly offset: [number, number];
        readonly value: string | number;
        readonly type: "success" | "primary" | "warning" | "info" | "danger";
        readonly max: number;
        readonly showZero: boolean;
        readonly isDot: boolean;
    }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
        $slots: {
            default?(_: {}): any;
            content?(_: {
                value: string;
            }): any;
        };
    }) & import('vue').Plugin;
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
