import { EventEmitter } from '@angular/core';
import { ApplicationContextService } from '../app-context/application-context.service';
import { CommonService } from './common.service';
import { ModuleConfigService } from './module-config.service';
import { PermissionService } from './permission.service';
export declare enum MenuSource {
    JSON = 0,
    LocalStorage = 1
}
export declare class TnMenu {
    instanceId?: string;
    isRootMenu?: boolean;
    isCustomAuthen?: boolean;
    allowAnonymous?: boolean;
    visible?: boolean;
    items?: TnMenu[];
    newTabLink?: string;
    href?: string;
    icon?: string;
    level?: number;
    label?: string;
    baseHref?: string;
    routerLink?: string;
    url?: string;
    disabled?: boolean;
    activated?: boolean;
    command?: Function;
    permission?: string;
    ignoreBasePath?: boolean;
    count?: number;
}
export declare class MenuService {
    private _moduleConfigService;
    private _permissionService;
    private _commonService;
    private _applicationContext;
    private _menuItems;
    private _rootMenu;
    private mappingRouterLink;
    private mappingReveseRouterLink;
    menuChanged: EventEmitter<any>;
    constructor(_moduleConfigService: ModuleConfigService, _permissionService: PermissionService, _commonService: CommonService, _applicationContext: ApplicationContextService);
    map(sourceRouterLink: any, mappedRouterLink: any[]): void;
    checkMappingRouterLink(menuRouterLink: any, currentRouterLink: any): any;
    initRootMenu(menu: TnMenu): void;
    getMenu(): TnMenu;
    setMenuItems(menus: TnMenu[], clearPrevMenu?: boolean): Promise<void>;
    recursiveOrderBy(menus: TnMenu[]): any;
    getModuleName(code: string): any;
    getLongModuleName(code: string): any;
    loopGetActive(menus: TnMenu[], result: any, lastLength: any): void;
    getMenuActives(): any[];
    getLastMenuActive(): any;
    loopGetMenuItem(menus: TnMenu[], instanceId: any): any;
    getMenuItem(instanceId: any): any;
    getMenuItems(): TnMenu[];
    setVisibleMenus(menus: TnMenu[]): Promise<void>;
    private setVisibleMenu;
    renderMenuByAppCode(appCode: string): Promise<void>;
    setDefaultIcon(menus: TnMenu[], level: number): void;
}
//# sourceMappingURL=menu.service.d.ts.map