import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, CSSProperties, StyleValue, ComponentProvideOptions } from 'vue';
import { NavigationFailure } from 'vue-router';
import { MenuDataItem, MenuPermissionChecker, MenuProps, MenuMode, MenuTrigger, MenuIcon, MenuPopperEffect } from './menu.js';
import { MenuItemClicked } from './types.js';
declare function updateActiveIndex(index: string): void;
declare function handleResize(): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        default?: () => VNode[];
    }> & {
        default?: () => VNode[];
    };
    refs: {
        menuRef: HTMLUListElement;
        moreTriggerRef: HTMLLIElement;
        morePopupRef: HTMLUListElement;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<MenuProps, {
    open: (index: string) => void;
    close: (index: string) => void;
    handleResize: typeof handleResize;
    updateActiveIndex: typeof updateActiveIndex;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    close: (_index: string, _indexPath: string[]) => void;
    select: (_index: string, _indexPath: string[], _item: MenuItemClicked, _routerResult?: Promise<void | NavigationFailure> | undefined) => void;
    open: (_index: string, _indexPath: string[]) => void;
    "update:activeIndex": (_value: string) => void;
    "update:openedMenus": (_value: string[]) => void;
}, string, PublicProps, Readonly<MenuProps> & Readonly<{
    onClose?: ((_index: string, _indexPath: string[]) => any) | undefined;
    onSelect?: ((_index: string, _indexPath: string[], _item: MenuItemClicked, _routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
    onOpen?: ((_index: string, _indexPath: string[]) => any) | undefined;
    "onUpdate:activeIndex"?: ((_value: string) => any) | undefined;
    "onUpdate:openedMenus"?: ((_value: string[]) => any) | undefined;
}>, {
    router: boolean;
    mode: MenuMode;
    backgroundColor: string;
    collapse: boolean;
    ellipsis: boolean;
    persistent: boolean;
    popperClass: string;
    popperStyle: string | false | CSSProperties | StyleValue[] | null;
    items: MenuDataItem[];
    activeIndex: string;
    textColor: string;
    defaultActive: string;
    defaultOpeneds: string[];
    openedMenus: string[];
    uniqueOpened: boolean;
    menuTrigger: MenuTrigger;
    permissionChecker: MenuPermissionChecker;
    activeTextColor: string;
    closeOnClickOutside: boolean;
    collapseTransition: boolean;
    popperOffset: number;
    ellipsisIcon: MenuIcon;
    popperEffect: MenuPopperEffect;
    showTimeout: number;
    hideTimeout: number;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    menuRef: HTMLUListElement;
    moreTriggerRef: HTMLLIElement;
    morePopupRef: HTMLUListElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
