import { Router } from 'aurelia-router';
import { BindingEngine } from 'aurelia-framework';
import { AuthService } from '../../security/auth-service';
import { Disposable } from 'aurelia-binding';
import { UIMenuGroupConfig } from '../../model/common-model';
import { Config } from '../../config';
export declare class UINavbarMenu {
    private authService;
    private bindingEngine;
    private config;
    router: Router;
    groupIcons: Map<string, UIMenuGroupConfig>;
    autoFold: boolean;
    viewBurger: boolean;
    keepCondensed: boolean;
    onSelected: (menu: MenuGroup) => void;
    onViewChildren: (menu: MenuGroup) => void;
    isCondensed: boolean;
    private newAuthorizedRoutes;
    private isHoverNavbar;
    get authorizedTopRoutes(): MenuGroupInstance[];
    get authorizedBottomRoutes(): MenuGroupInstance[];
    disposable: Disposable;
    private maxLevel;
    private navbar;
    private navbarMenu;
    private removeSmallDeviceTimeout;
    constructor(authService: AuthService, bindingEngine: BindingEngine, config: Config);
    bind(): void;
    private selectedCurrentRoute;
    private isSameRoute;
    attached(): void;
    private toggleClassHover;
    detached(): void;
    refreshRoutes(): void;
    private getAvailableRoutes;
    viewChildren(menu: MenuGroup): void;
    routeClick($event: MouseEvent, menu: MenuGroupInstance): void;
    changeViewChildren(menu: MenuGroup, viewChildren: boolean): void;
    menuIsSelected(menu: MenuGroup): boolean;
    toggleMenu(): void;
    private asCondensed;
    private openMenu;
    private closeMenu;
    private closeCollapsible;
}
export interface MenuGroup {
    icon: string;
    group: string;
    subGroup: string;
    title: string;
    routeName: string;
    route: string;
    children: Array<MenuGroup>;
    isSelected: boolean;
    viewChildren: boolean;
    isBottom: boolean;
    isDefault: boolean;
    level: number;
}
export declare class MenuGroupInstance implements MenuGroup {
    icon: string;
    group: string;
    subGroup: string;
    title: string;
    routeName: string;
    route: string;
    children: MenuGroupInstance[];
    _isSelected: boolean;
    viewChildren: boolean;
    isBottom: boolean;
    isDefault: boolean;
    _level: number;
    classes: string | null;
    constructor(level: number, data: Partial<MenuGroupInstance>);
    get isSelected(): boolean;
    setSelected(isSelected?: boolean): void;
    get level(): number;
    hasChildren(maxLevel: number): boolean;
}
