import { NavigationFailure } from 'vue-router';
import { MenuItemClicked } from 'element-plus';
import { ElMenuProps, ElMenuInstance, ElSubMenuInstance } from '../ele-app/el';
import { getPopperClass } from './util';
import { MenuItem, MenuItemEvent } from './types';

declare const _default: import('vue').DefineComponent<{
    mode: import('vue').PropType<import('./types').MenuMode>;
    items: {
        type: import('vue').PropType<MenuItem[]>;
        required: boolean;
    };
    theme: import('vue').PropType<import('./types').MenuTheme>;
    popupTheme: {
        type: import('vue').PropType<import('./types').PopupMenuTheme>;
        default: string;
    };
    colorful: BooleanConstructor;
    popupColorful: {
        type: import('vue').PropType<import('./types').PopupColorful>;
        default: string;
    };
    firstPopperClass: StringConstructor;
    tooltipDisabled: BooleanConstructor;
    ellipsisProps: import('vue').PropType<import('./types').EllipsisProps>;
    textEllipsisTooltip: import('vue').PropType<import('./types').TextEllipsisTooltip>;
    defaultActive: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
    defaultOpeneds: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
    uniqueOpened: BooleanConstructor;
    router: BooleanConstructor;
    menuTrigger: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, "click" | "hover", unknown, "hover", boolean>;
    collapse: BooleanConstructor;
    backgroundColor: StringConstructor;
    textColor: StringConstructor;
    activeTextColor: StringConstructor;
    closeOnClickOutside: BooleanConstructor;
    collapseTransition: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    ellipsis: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    popperOffset: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
    ellipsisIcon: import('element-plus/es/utils/index').EpPropFinalized<(new (
    /** 文本溢出提示是否显示 */
    ... /** 文本溢出提示是否显示 */args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown, () => any, boolean>;
    popperEffect: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => string & {}) | (() => string) | ((new (...args: any[]) => string & {}) | (() => string))[], unknown, unknown, "dark", boolean>;
    popperClass: StringConstructor;
    showTimeout: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
    hideTimeout: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
}, {
    EllipsisOutlined: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>;
    getPopperClass: typeof getPopperClass;
    isWebkit: boolean;
    menuRef: import('vue').Ref<ElMenuInstance>;
    ellipsisRef: import('vue').Ref<ElSubMenuInstance>;
    menuItems: import('vue').ShallowRef<MenuItem[] | undefined>;
    moreMenuItems: import('vue').ShallowRef<MenuItem[] | undefined>;
    tooltipVirtualRef: import('vue').Ref<any>;
    tooltipContent: import('vue').Ref<string>;
    tooltipVisible: import('vue').Ref<boolean>;
    isCompact: import('vue').ComputedRef<boolean>;
    collapseTooltipDisabled: import('vue').ComputedRef<boolean>;
    menuProps: import('vue').ComputedRef<ElMenuProps>;
    open: (index: string) => void;
    close: (index: string) => void;
    handleOpen: (index: string, indexPath: string[]) => void;
    handleClose: (index: string, indexPath: string[]) => void;
    handleSelect: (index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => void;
    handleItemClick: MenuItemEvent;
    handleItemMouseenter: MenuItemEvent;
    handleItemMouseleave: MenuItemEvent;
    handleParentMouseenter: MenuItemEvent;
    handleParentMouseleave: MenuItemEvent;
    scrollToActive: () => void;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    itemClick: (_item: MenuItem, _e: MouseEvent) => boolean;
    itemMouseenter: (_item: MenuItem, _e: MouseEvent) => boolean;
    itemMouseleave: (_item: MenuItem, _e: MouseEvent) => boolean;
    parentMouseenter: (_item: MenuItem, _e: MouseEvent) => boolean;
    parentMouseleave: (_item: MenuItem, _e: MouseEvent) => boolean;
    close: (index: string, indexPath: string[]) => boolean;
    open: (index: string, indexPath: string[]) => boolean;
    select: (index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure>) => boolean;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    mode: import('vue').PropType<import('./types').MenuMode>;
    items: {
        type: import('vue').PropType<MenuItem[]>;
        required: boolean;
    };
    theme: import('vue').PropType<import('./types').MenuTheme>;
    popupTheme: {
        type: import('vue').PropType<import('./types').PopupMenuTheme>;
        default: string;
    };
    colorful: BooleanConstructor;
    popupColorful: {
        type: import('vue').PropType<import('./types').PopupColorful>;
        default: string;
    };
    firstPopperClass: StringConstructor;
    tooltipDisabled: BooleanConstructor;
    ellipsisProps: import('vue').PropType<import('./types').EllipsisProps>;
    textEllipsisTooltip: import('vue').PropType<import('./types').TextEllipsisTooltip>;
    defaultActive: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
    defaultOpeneds: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
    uniqueOpened: BooleanConstructor;
    router: BooleanConstructor;
    menuTrigger: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, "click" | "hover", unknown, "hover", boolean>;
    collapse: BooleanConstructor;
    backgroundColor: StringConstructor;
    textColor: StringConstructor;
    activeTextColor: StringConstructor;
    closeOnClickOutside: BooleanConstructor;
    collapseTransition: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    ellipsis: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    popperOffset: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
    ellipsisIcon: import('element-plus/es/utils/index').EpPropFinalized<(new (
    /** 文本溢出提示是否显示 */
    ... /** 文本溢出提示是否显示 */args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown, () => any, boolean>;
    popperEffect: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => string & {}) | (() => string) | ((new (...args: any[]) => string & {}) | (() => string))[], unknown, unknown, "dark", boolean>;
    popperClass: StringConstructor;
    showTimeout: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
    hideTimeout: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
}>> & {
    onSelect?: ((index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
    onClose?: ((index: string, indexPath: string[]) => any) | undefined;
    onOpen?: ((index: string, indexPath: string[]) => any) | undefined;
    onItemClick?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
    onItemMouseenter?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
    onItemMouseleave?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
    onParentMouseenter?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
    onParentMouseleave?: ((_item: MenuItem, _e: MouseEvent) => any) | undefined;
}, {
    showTimeout: number;
    hideTimeout: number;
    defaultActive: string;
    defaultOpeneds: string[];
    uniqueOpened: boolean;
    router: boolean;
    menuTrigger: import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "hover" | "click", unknown>;
    collapse: boolean;
    closeOnClickOutside: boolean;
    collapseTransition: import('element-plus/es/utils/index').EpPropMergeType<BooleanConstructor, unknown, unknown>;
    ellipsis: import('element-plus/es/utils/index').EpPropMergeType<BooleanConstructor, unknown, unknown>;
    popperOffset: number;
    ellipsisIcon: import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown>;
    popperEffect: string;
    popupTheme: import('./types').PopupMenuTheme;
    colorful: boolean;
    popupColorful: import('./types').PopupColorful;
    tooltipDisabled: boolean;
}, {}>;
export default _default;
