import { AfterContentInit, ElementRef, OnChanges, OnDestroy, OnInit, QueryList } from '@angular/core';
import { CssClassBuilder, RtlService } from '@fundamental-ngx/cdk/utils';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
import { TabItemDirective } from '../tab-item/tab-item.directive';
import { TabLinkDirective } from '../tab-link/tab-link.directive';
import { TabModes, TabSizes } from '../tab-list.component';
import * as i0 from "@angular/core";
export declare class TabNavComponent implements AfterContentInit, OnChanges, OnInit, OnDestroy, CssClassBuilder {
    readonly elementRef: ElementRef;
    private readonly _contentDensityObserver;
    private readonly _rtlService;
    /** Apply user custom styles */
    class: string;
    /**
     * Whether user wants to use tab component in certain mode. Modes available:
     * 'icon-only' | 'process' | 'filter'
     */
    mode: TabModes;
    /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */
    size: TabSizes;
    /** @hidden */
    links: QueryList<TabLinkDirective>;
    /** @hidden */
    items: QueryList<TabItemDirective>;
    /** @hidden */
    private _subscriptions;
    /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)  */
    private readonly _destroyRef;
    /** @hidden */
    private _keyboardEventsManager;
    /** @hidden */
    private _dir;
    /** @hidden */
    constructor(elementRef: ElementRef, _contentDensityObserver: ContentDensityObserver, _rtlService: RtlService);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    private _keyUpHandler;
    /** @hidden */
    ngAfterContentInit(): void;
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** Function that gives possibility to get all the link directives, with and without nav__item wrapper */
    get tabLinks(): TabLinkDirective[];
    /**
     * Function to select a new tab from an index.
     * @param tabIndex Index of the tab to select.
     */
    selectTab(tabIndex: number): void;
    /**
     * @hidden
     * Every time any of query is changed, ex. tab is removed or added
     * reference to keydown subscriptions handler is renewed
     */
    private _listenOnContentQueryListChange;
    /** Whether any QueryList detects any changes */
    private _refreshSubscription;
    /** @hidden */
    private _listenToFocusedLinks;
    /** @hidden */
    private _setupKeyManager;
    static ɵfac: i0.ɵɵFactoryDeclaration<TabNavComponent, [null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TabNavComponent, "[fd-tab-nav]", never, { "class": { "alias": "class"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, ["links", "items"], ["*"], true, never>;
}
