import { AfterContentInit, EventEmitter, Injector, OnInit, QueryList, ViewContainerRef } from '@angular/core';
import { Router } from '@angular/router';
import { Icon } from '../icon/icon.model';
import { SidebarDirection, SidebarItemSearch, SidebarMode } from './sidebar.model';
import { SidebarComponent } from './sidebar.component';
import { SidebarService } from './sidebar.service';
import * as i0 from "@angular/core";
/**
 * Component to display item in the sidebar
 *
 * Item can be nested
 */
export declare class SidebarItemComponent implements OnInit, AfterContentInit {
    private readonly router;
    private readonly injector;
    private readonly viewContainerRef;
    private readonly sidebarService;
    children: QueryList<SidebarItemComponent>;
    /**
     * Id of the item
     */
    id?: string;
    /**
     * Direction : ltr or rtl (default = ltr)
     */
    direction: SidebarDirection;
    /**
     * Display mode : closely or large (default = closely)
     */
    mode: SidebarMode;
    /**
     * Icon displayed
     *
     * As string, it display material icon
     * In other case, it possible to put a Icon model (same behaviour as mic-icon)
     */
    icon?: string | Icon;
    /**
     * Router link
     */
    link?: string;
    /**
     * Text label for the link
     */
    label: string;
    /**
     * Add tag on items to filter selection
     */
    tags: string[];
    /**
     * Define search input configuration
     */
    search?: SidebarItemSearch;
    /**
     * Event emit when an item is selected
     */
    selected: EventEmitter<SidebarItemComponent>;
    classes: string;
    hasChild: boolean;
    active?: string;
    isActive: boolean;
    displayColor: string;
    constructor(router: Router, injector: Injector, viewContainerRef: ViewContainerRef, sidebarService: SidebarService);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    /**
     * Determine path from an url
     * Exclude hash and parameters
     *
     * @param url
     * @returns
     */
    getPath(url: string): string;
    /**
     * Check if any sibling has an active link state
     */
    checkActiveLinkItems(): boolean;
    /**
     * Get parent sidebar component
     * @returns The parent SidebarComponent or null if not found
     */
    getParentSidebar(): SidebarComponent | null;
    /**
     * Deactivate any active link items
     */
    deactivateActiveLinks(): void;
    /**
     * Trigger click event on the sidebar item
     * If item has children, prevent navigation
     * If item has no link but has id, toggle active state
     *
     * @param event
     */
    click(event: Event, item: SidebarItemComponent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SidebarItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SidebarItemComponent, "mic-sidebar-item", never, { "id": { "alias": "id"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "link": { "alias": "link"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "search": { "alias": "search"; "required": false; }; }, { "selected": "selected"; }, ["children"], never, false, never>;
}
