import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy } from '@angular/core';
import { IFocusableOption } from '@koobiq/cdk/a11y';
import { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
import { KbqFormField } from '@koobiq/components/form-field';
import { KbqIcon } from '@koobiq/components/icon';
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export interface KbqNavbarFocusableItemEvent {
    item: KbqNavbarFocusableItem;
}
export declare class KbqNavbarLogo {
    readonly hovered: Subject<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarLogo, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarLogo, "kbq-navbar-logo, [kbq-navbar-logo]", never, {}, {}, never, never, false, never>;
}
export declare class KbqNavbarBento {
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarBento, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarBento, "kbq-navbar-item[bento], [kbq-navbar-item][bento]", never, {}, {}, never, never, false, never>;
}
export declare class KbqNavbarTitle implements AfterViewInit {
    protected readonly isBrowser: boolean;
    protected readonly nativeElement: HTMLElement;
    private readonly window;
    readonly hovered: Subject<boolean>;
    outerElementWidth: number;
    isTextOverflown: boolean;
    get text(): string;
    get isOverflown(): boolean;
    getOuterElementWidth(): number;
    checkTextOverflown(): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarTitle, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarTitle, "kbq-navbar-title, [kbq-navbar-title]", never, {}, {}, never, never, false, never>;
}
export declare class KbqNavbarDivider {
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarDivider, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarDivider, "kbq-navbar-divider", never, {}, {}, never, never, false, never>;
}
export declare class KbqNavbarFocusableItem implements AfterContentInit, AfterViewInit, OnDestroy, IFocusableOption {
    private elementRef;
    private changeDetector;
    private focusMonitor;
    private ngZone;
    title: KbqNavbarTitle;
    button: KbqButton;
    formField: KbqFormField;
    get nestedElement(): KbqButton | KbqFormField;
    get tooltip(): KbqTooltipTrigger;
    private _tooltip;
    readonly onFocus: Subject<KbqNavbarFocusableItemEvent>;
    readonly onBlur: Subject<KbqNavbarFocusableItemEvent>;
    get hasFocus(): boolean;
    set hasFocus(value: boolean);
    private _hasFocus;
    /** Whether the item is disabled. */
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    get tabIndex(): number;
    constructor(elementRef: ElementRef<HTMLElement>, changeDetector: ChangeDetectorRef, focusMonitor: FocusMonitor, ngZone: NgZone);
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    setTooltip(value: KbqTooltipTrigger): void;
    onFocusHandler(): void;
    focus(origin?: FocusOrigin): void;
    blur(): void;
    getLabel(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarFocusableItem, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarFocusableItem, "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["title", "button", "formField"], never, false, never>;
    static ngAcceptInputType_disabled: unknown;
}
export declare class KbqNavbarRectangleElement {
    protected readonly isBrowser: boolean;
    protected readonly nativeElement: HTMLElement;
    private readonly window;
    private readonly changeDetectorRef;
    readonly state: Subject<void>;
    get horizontal(): boolean;
    set horizontal(value: boolean);
    private _horizontal;
    get vertical(): boolean;
    set vertical(value: boolean);
    private _vertical;
    get collapsed(): boolean;
    set collapsed(value: boolean);
    private _collapsed;
    button: KbqButtonCssStyler;
    getOuterElementWidth(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarRectangleElement, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarRectangleElement, "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]", never, {}, {}, ["button"], never, false, never>;
}
export declare class KbqNavbarItem extends KbqTooltipTrigger implements AfterContentInit {
    rectangleElement: KbqNavbarRectangleElement;
    navbarFocusableItem: KbqNavbarFocusableItem;
    private changeDetectorRef;
    private dropdownTrigger;
    private bento;
    title: KbqNavbarTitle;
    icon: KbqIcon;
    collapsedText: string;
    get trigger(): string;
    set trigger(value: string);
    set collapsed(value: boolean);
    get isCollapsed(): boolean;
    private _collapsed;
    get croppedText(): string;
    get collapsable(): boolean;
    set collapsable(value: boolean);
    private _collapsable;
    get titleText(): string | null;
    get disabled(): boolean;
    set disabled(value: boolean);
    get hasDropDownTrigger(): boolean;
    get showVerticalDropDownAngle(): boolean;
    get showHorizontalDropDownAngle(): boolean;
    get hasCroppedText(): boolean;
    constructor(rectangleElement: KbqNavbarRectangleElement, navbarFocusableItem: KbqNavbarFocusableItem, changeDetectorRef: ChangeDetectorRef, dropdownTrigger: KbqDropdownTrigger, bento: KbqNavbarBento);
    ngAfterContentInit(): void;
    updateTooltip(): void;
    getTitleWidth(): number;
    onKeyDown($event: KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarItem, [null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarItem, "kbq-navbar-item, [kbq-navbar-item]", ["kbqNavbarItem"], { "collapsedText": { "alias": "collapsedText"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "collapsable": { "alias": "collapsable"; "required": false; }; }, {}, ["title", "icon"], ["[kbq-icon]", "kbq-navbar-title, [kbq-navbar-title]", "*"], false, never>;
}
