import { NestedTreeControl } from '@angular/cdk/tree';
import { AfterContentInit, OnInit, QueryList } from '@angular/core';
import { MatTreeNestedDataSource } from '@angular/material/tree';
import { Router } from '@angular/router';
import { BreakpointObserver } from '@angular/cdk/layout';
import { FormControl } from '@angular/forms';
import { SidebarItemComponent } from './sidebar-item.component';
import { SidebarCollapseConfig, SidebarColor, SidebarDirection, SidebarMode, SidebarSubject, SidebarType } from './sidebar.model';
import { SidebarService } from './sidebar.service';
import * as i0 from "@angular/core";
/**
 * Component to display sidebar
 *
 * Support position, colorations, closely mode
 */
export declare class SidebarComponent implements OnInit, AfterContentInit {
    private readonly router;
    private readonly sidebarService;
    private readonly breakpointObserver;
    /**
     * Theme color : white or primary (default = primary)
     */
    color: SidebarColor;
    /**
     * Display mode : closely or large (default = closely)
     */
    mode: SidebarMode;
    /**
     * Direction : ltr or rtl (default = ltr)
     */
    direction: SidebarDirection;
    /**
     * Collapse label for collapse menu presence
     */
    collapseConfig?: SidebarCollapseConfig;
    classes: string;
    items: QueryList<SidebarItemComponent>;
    small?: boolean;
    search: FormControl<string>;
    treeControl: NestedTreeControl<SidebarItemComponent, SidebarItemComponent>;
    datasource: MatTreeNestedDataSource<SidebarItemComponent>;
    children: SidebarItemComponent[];
    selected?: SidebarItemComponent;
    collapsed?: boolean;
    hasChild: (_: number, node: SidebarItemComponent) => boolean;
    subject?: SidebarSubject;
    type: SidebarType;
    position?: string;
    constructor(router: Router, sidebarService: SidebarService, breakpointObserver: BreakpointObserver);
    ngOnInit(): void;
    private initSearchField;
    private initRouter;
    ngAfterContentInit(): void;
    manageSidebarItems(): void;
    select(menu: SidebarItemComponent, exact: boolean): void;
    updateSidebar(menu?: SidebarItemComponent): void;
    sidenavCollapsed(children: SidebarItemComponent[]): void;
    collapseMenu(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SidebarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SidebarComponent, "mic-sidebar", never, { "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "collapseConfig": { "alias": "collapseConfig"; "required": false; }; }, {}, ["items"], ["*"], false, never>;
}
