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 { KbqRectangleItem } from '@koobiq/components/core';
import { KbqFormField } from '@koobiq/components/form-field';
import { KbqIcon } from '@koobiq/components/icon';
import { KbqTooltipTrigger, TooltipModifier } from '@koobiq/components/tooltip';
import { Subject } from 'rxjs';
import { KbqNavbarIc } from './navbar-ic';
import * as i0 from "@angular/core";
import * as i1 from "@koobiq/components/core";
/**
 * The maximum number of characters that can be placed in a title without being wrapped.
 */
export declare const kbqMaxSymbolsInHeaderTitle = 22;
export interface KbqNavbarFocusableItemEvent {
    item: KbqNavbarIcFocusableItem;
}
export declare class KbqNavbarIcLogo {
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcLogo, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcLogo, "[kbqNavbarIcLogo]", never, {}, {}, never, never, true, never>;
}
export declare class KbqNavbarIcTitle 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;
    ngAfterViewInit(): void;
    getOuterElementWidth(): number;
    checkTextOverflown(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcTitle, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcTitle, "[kbqNavbarIcTitle]", never, {}, {}, never, never, true, never>;
}
export declare class KbqNavbarIcDivider {
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcDivider, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcDivider, "[kbqNavbarIcDivider]", never, {}, {}, never, never, true, never>;
}
export declare class KbqNavbarIcFocusableItem implements AfterContentInit, AfterViewInit, OnDestroy, IFocusableOption {
    protected readonly elementRef: ElementRef<HTMLElement>;
    protected readonly changeDetector: ChangeDetectorRef;
    protected readonly focusMonitor: FocusMonitor;
    protected readonly ngZone: NgZone;
    /** @docs-private */
    title: KbqNavbarIcTitle;
    /** @docs-private */
    button: KbqButton;
    /** @docs-private */
    formField: 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;
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    setTooltip(value: KbqTooltipTrigger): void;
    focus(origin?: FocusOrigin): void;
    /** @docs-private */
    focusHandler(): void;
    /** @docs-private */
    blurHandler(): void;
    getLabel(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcFocusableItem, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcFocusableItem, "kbq-navbar-ic-item, [kbq-navbar-ic-item], kbq-navbar-ic-header, [kbq-navbar-ic-header], kbq-navbar-ic-toggle", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["title", "button", "formField"], never, true, never>;
    static ngAcceptInputType_disabled: unknown;
}
export declare class KbqNavbarIcItem extends KbqTooltipTrigger implements AfterContentInit {
    readonly rectangleElement: KbqRectangleItem;
    readonly navbar: KbqNavbarIc;
    readonly navbarFocusableItem: KbqNavbarIcFocusableItem;
    private changeDetectorRef;
    private dropdownTrigger;
    private tooltip;
    /** @docs-private */
    title: KbqNavbarIcTitle;
    /** @docs-private */
    icon: KbqIcon;
    /** @docs-private */
    button: KbqButtonCssStyler;
    get trigger(): string;
    set trigger(value: string);
    set collapsed(value: boolean);
    private _collapsed;
    get croppedText(): string;
    get titleText(): string;
    get disabled(): boolean;
    set disabled(value: boolean);
    get hasDropDownTrigger(): boolean;
    get showDropDownAngle(): boolean;
    get hasCroppedText(): boolean;
    constructor();
    ngAfterContentInit(): void;
    /** @docs-private */
    updateTooltip(): void;
    /** @docs-private */
    onKeyDown($event: KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcItem, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarIcItem, "kbq-navbar-ic-item, [kbq-navbar-ic-item]", ["kbqNavbarIcItem"], { "trigger": { "alias": "kbqTrigger"; "required": false; }; }, {}, ["title", "icon", "button"], ["[kbq-icon]", "[kbqNavbarIcTitle]", "*"], true, [{ directive: typeof i1.KbqRectangleItem; inputs: {}; outputs: {}; }]>;
}
export declare class KbqNavbarIcToggle {
    readonly navbar: KbqNavbarIc;
    readonly rectangleElement: KbqRectangleItem;
    protected readonly changeDetectorRef: ChangeDetectorRef;
    protected modifier: TooltipModifier;
    /** localized data
     * @docs-private */
    get localeData(): any;
    constructor();
    /** @docs-private */
    onKeydown($event: KeyboardEvent): void;
    toggle: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcToggle, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarIcToggle, "kbq-navbar-ic-toggle", never, {}, {}, never, ["[kbqNavbarIcTitle]"], true, [{ directive: typeof i1.KbqRectangleItem; inputs: {}; outputs: {}; }]>;
}
