import { AfterContentInit, AfterViewInit, ElementRef, OnDestroy, QueryList } from '@angular/core';
import { KbqPaginatedTabHeader } from './paginated-tab-header';
import * as i0 from "@angular/core";
/**
 * Navigation component matching the styles of the tab group header.
 */
export declare class KbqTabNavBar extends KbqPaginatedTabHeader implements AfterContentInit {
    readonly tabListContainer: ElementRef;
    readonly tabList: ElementRef;
    readonly nextPaginator: ElementRef<HTMLElement>;
    readonly previousPaginator: ElementRef<HTMLElement>;
    readonly items: QueryList<KbqTabLink>;
    /** Whether the nav bar background should be transparent. */
    transparent: boolean;
    onSurface: boolean;
    /** Whether the nav bar should be underlined. */
    underlined: boolean;
    /**
     * Associated tab panel controlled by the nav bar.
     */
    tabNavPanel?: KbqTabNavPanel;
    get role(): string | null;
    protected get activeTabOffsetWidth(): number | undefined;
    protected get activeTabOffsetLeft(): number | undefined;
    ngAfterContentInit(): void;
    protected itemSelected(): void;
    /** Notifies the component that the active link has been changed. */
    updateActiveLink(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqTabNavBar, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqTabNavBar, "[kbqTabNavBar], [kbq-tab-nav-bar]", ["kbqTabNavBar"], { "transparent": { "alias": "transparent"; "required": false; }; "onSurface": { "alias": "onSurface"; "required": false; }; "underlined": { "alias": "underlined"; "required": false; }; "tabNavPanel": { "alias": "tabNavPanel"; "required": false; }; }, {}, ["items"], ["*"], true, never>;
    static ngAcceptInputType_transparent: unknown;
    static ngAcceptInputType_onSurface: unknown;
    static ngAcceptInputType_underlined: unknown;
}
/**
 * Link inside of a KbqTabNavBar.
 */
export declare class KbqTabLink implements OnDestroy, AfterViewInit {
    /** Unique id for the link. */
    id: string;
    /** Whether the link is active. */
    get active(): boolean;
    set active(value: boolean);
    /** Whether the tab link is active or not. */
    private _active;
    get vertical(): boolean;
    get underlined(): boolean;
    /** Whether the tab link is disabled. */
    disabled: boolean;
    /** Link tab index. */
    get tabIndex(): number;
    set tabIndex(value: number);
    private _tabIndex;
    /** Link aria-selected attribute value. */
    protected get ariaSelected(): string | null;
    /** Link role attribute value. */
    protected get role(): string | null;
    /** Link aria-controls attribute value. */
    protected get ariaControls(): string | null;
    /** Link aria-current attribute value. */
    protected get ariaCurrent(): string | null;
    readonly elementRef: ElementRef<HTMLElement>;
    private readonly focusMonitor;
    private readonly renderer;
    private readonly tabNavBar;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private addClassModifierForIcons;
    /** Focuses the tab link. */
    focus(): void;
    /** Handles the focus event. */
    protected handleFocus(): void;
    /** Handles the keydown event. */
    protected handleKeydown(event: KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqTabLink, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTabLink, "[kbqTabLink], [kbq-tab-link]", ["kbqTabLink"], { "id": { "alias": "id"; "required": false; }; "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_active: unknown;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_tabIndex: unknown;
}
/**
 * Tab panel component associated with KbqTabNav.
 */
export declare class KbqTabNavPanel {
    /** Unique id for the tab panel. */
    id: string;
    /** Id of the active tab in the nav bar. */
    activeTabId?: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqTabNavPanel, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTabNavPanel, "[kbqTabNavPanel]", ["kbqTabNavPanel"], { "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never>;
}
