import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import { MAccordionTransition } from '../transitions/accordion-transition/accordion-transition';
import './menu.scss';
export declare abstract class BaseMenu extends ModulVue {
}
export interface Menu {
    model: string;
    propOpen: boolean;
    propDisabled: boolean;
    animReady: boolean;
    closeOnSelectionInAction: boolean;
    updateValue(value: string | undefined): void;
    onClick(event: Event, value: string): void;
    beforeEnter(event: Event, value: string): void;
    enter(event: Event, value: string): void;
    afterEnter(event: Event, value: string): void;
    enterCancelled(event: Event, value: string): void;
    beforeLeave(event: Event, value: string): void;
    leave(event: Event, value: string): void;
    afterLeave(event: Event, value: string): void;
    leaveCancelled(event: Event, value: string): void;
}
export declare enum MMenuSkin {
    Light = "light",
    Dark = "dark"
}
export declare class MMenu extends BaseMenu implements Menu {
    selected: string;
    open: boolean;
    closeOnSelection: boolean;
    skin: MMenuSkin;
    disabled: boolean;
    idAriaControls: string;
    $refs: {
        menu: HTMLElement;
        buttonMenu: HTMLElement;
        transition: MAccordionTransition;
    };
    animReady: boolean;
    closeOnSelectionInAction: boolean;
    titleMenuOpen: string;
    titleMenuClose: string;
    private internalValue;
    private internalOpen;
    private internalDisabled;
    private internalItems;
    private menuObserver;
    onClick(event: Event, value: string): void;
    beforeEnter(event: Event, value: string): void;
    enter(event: Event, value: string): void;
    afterEnter(event: Event, value: string): void;
    enterCancelled(event: Event, value: string): void;
    beforeLeave(event: Event, value: string): void;
    leave(event: Event, value: string): void;
    afterLeave(event: Event, value: string): void;
    leaveCancelled(event: Event, value: string): void;
    updateValue(value: string | undefined): void;
    private onOpenChanged;
    private onDisabledChanged;
    protected mounted(): void;
    protected beforeDestroy(): void;
    set propDisabled(disabled: boolean);
    get propDisabled(): boolean;
    set propOpen(open: boolean);
    get propOpen(): boolean;
    toggleMenu(event: Event): void;
    get model(): any;
    set model(value: any);
    private buildItemsMap;
    private selectedItem;
    private isRouterLinkActive;
}
declare const MenuPlugin: PluginObject<any>;
export default MenuPlugin;
//# sourceMappingURL=menu.d.ts.map