import { FocusMonitor } from '@angular/cdk/a11y';
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, QueryList } from '@angular/core';
import { FocusKeyManager } from '@koobiq/cdk/a11y';
import { Observable, Subject } from 'rxjs';
import { KbqNavbarFocusableItem, KbqNavbarFocusableItemEvent, KbqNavbarItem } from './navbar-item.component';
import * as i0 from "@angular/core";
export type KbqNavbarContainerPositionType = 'left' | 'right';
export declare class KbqFocusableComponent implements AfterContentInit, AfterViewInit, OnDestroy {
    protected readonly changeDetectorRef: ChangeDetectorRef;
    protected readonly elementRef: ElementRef<HTMLElement>;
    protected readonly focusMonitor: FocusMonitor;
    focusableItems: QueryList<KbqNavbarFocusableItem>;
    keyManager: FocusKeyManager<KbqNavbarFocusableItem>;
    get tabIndex(): any;
    set tabIndex(value: any);
    private _tabIndex;
    get optionFocusChanges(): Observable<KbqNavbarFocusableItemEvent>;
    get optionBlurChanges(): Observable<KbqNavbarFocusableItemEvent>;
    private readonly destroyRef;
    private optionFocusSubscription;
    private optionBlurSubscription;
    constructor(changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor);
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    focus(): void;
    blur(): void;
    protected resetOptions(): void;
    protected dropSubscriptions(): void;
    private listenToOptionsFocus;
    private updateTabIndex;
    private isValidIndex;
    private hasFocusedItem;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqFocusableComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFocusableComponent, never, never, { "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, ["focusableItems"], never, false, never>;
}
export declare class KbqNavbarContainer {
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarContainer, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarContainer, "kbq-navbar-container", never, {}, {}, never, never, false, never>;
}
export declare class KbqNavbar extends KbqFocusableComponent implements AfterViewInit, AfterContentInit, OnDestroy {
    protected readonly elementRef: ElementRef<HTMLElement>;
    protected readonly changeDetectorRef: ChangeDetectorRef;
    protected readonly focusMonitor: FocusMonitor;
    rectangleElements: import("@angular/core").Signal<readonly any[]>;
    navbarItems: QueryList<KbqNavbarItem>;
    readonly resizeStream: Subject<Event>;
    private readonly resizeDebounceInterval;
    private get width();
    private get totalItemsWidth();
    private get collapsableItems();
    private resizeSubscription;
    constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor);
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onKeyDown(event: KeyboardEvent): void;
    updateExpandedStateForItems: () => void;
    private eventFromInput;
    private cursorOnFirstPosition;
    private cursorOnLastPosition;
    private collapseItems;
    private expandItems;
    private setItemsState;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbar, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbar, "kbq-navbar", never, {}, {}, ["rectangleElements", "navbarItems"], ["[kbq-navbar-container], kbq-navbar-container"], false, never>;
}
