import { Location } from '@angular/common';
import { Params } from '@angular/router';
import { Observable, BehaviorSubject } from 'rxjs';
export interface NbMenuBag {
    tag: string;
    item: NbMenuItem;
}
export declare class NbMenuItem {
    title: string;
    link?: string;
    url?: string;
    icon?: string;
    expanded?: boolean;
    children?: NbMenuItem[];
    target?: string;
    hidden?: boolean;
    pathMatch?: string;
    home?: boolean;
    group?: boolean;
    queryParams?: Params;
    parent?: NbMenuItem;
    selected?: boolean;
    data?: any;
    fragment?: string;
    static getParents(item: NbMenuItem): NbMenuItem[];
    static isParent(item: NbMenuItem, possibleChild: NbMenuItem): boolean;
}
export declare class NbMenuService {
    addItems(items: NbMenuItem[], tag?: string): void;
    collapseAll(tag?: string): void;
    navigateHome(tag?: string): void;
    getSelectedItem(tag?: string): Observable<NbMenuBag>;
    onItemClick(): Observable<NbMenuBag>;
    onItemSelect(): Observable<NbMenuBag>;
    onItemHover(): Observable<NbMenuBag>;
    onSubmenuToggle(): Observable<NbMenuBag>;
}
export declare class NbMenuInternalService {
    private location;
    constructor(location: Location);
    prepareItems(items: NbMenuItem[]): void;
    selectFromUrl(items: NbMenuItem[], tag: string, collapseOther?: boolean): void;
    selectItem(item: NbMenuItem, items: NbMenuItem[], collapseOther: boolean, tag: string): void;
    collapseAll(items: NbMenuItem[], tag: string, except?: NbMenuItem): void;
    onAddItem(): Observable<{
        tag: string;
        items: NbMenuItem[];
    }>;
    onNavigateHome(): Observable<{
        tag: string;
    }>;
    onCollapseAll(): Observable<{
        tag: string;
    }>;
    onGetSelectedItem(): Observable<{
        tag: string;
        listener: BehaviorSubject<NbMenuBag>;
    }>;
    itemHover(item: NbMenuItem, tag?: string): void;
    submenuToggle(item: NbMenuItem, tag?: string): void;
    itemSelect(item: NbMenuItem, tag?: string): void;
    itemClick(item: NbMenuItem, tag?: string): void;
    private resetSelection;
    private collapseItems;
    private applyDefaults;
    private setParent;
    private findItemByUrl;
    private isSelectedInUrl;
}
