import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, OnInit, QueryList } from '@angular/core';
import { PoTabDropdownComponent } from './po-tab-dropdown/po-tab-dropdown.component';
import { PoTabComponent } from './po-tab/po-tab.component';
import { PoTabsBaseComponent } from './po-tabs-base.component';
export declare const poTabsLiterals: object;
/**
 * @docsExtends PoTabsBaseComponent
 *
 * @description
 *
 * O componente `po-tabs` é responsável por agrupar [abas](/documentation/po-tab) dispostas numa linha horizontal,
 * ideal para facilitar a organização de conteúdos.
 *
 * O componente exibirá as abas enquanto houver espaço na tela, caso a aba ultrapasse o limite da tela a mesma será agrupada em um dropdown.
 *
 * > As abas que estiverem agrupadas serão dispostas numa cascata suspensa que será exibida ao clicar no botão.
 *
 * É possível realizar a navegação entre as abas através da tecla SETAS(direita e esquerda) do teclado.
 * Caso uma aba estiver desabilitada, não receberá foco de navegação.
 *
 * #### Boas práticas
 *
 * - Evite utilizar um `po-tabs` dentro de outro `po-tabs`;
 * - Evite utilizar uma quantidade excessiva de abas, pois irá gerar um *scroll* muito longo no `dropdown`;
 * - Evite `labels` extensos para as `tabs` pois podem quebrar seu *layout*, use `labels` diretas, curtas e intuitivas.
 *
 *
 * @example
 *
 * <example name="po-tabs-basic" title="PO Tabs Basic">
 *  <file name="sample-po-tabs-basic/sample-po-tabs-basic.component.html"> </file>
 *  <file name="sample-po-tabs-basic/sample-po-tabs-basic.component.ts"> </file>
 * </example>
 *
 * <example name="po-tabs-labs" title="PO Tabs Labs">
 *  <file name="sample-po-tabs-labs/sample-po-tabs-labs.component.html"> </file>
 *  <file name="sample-po-tabs-labs/sample-po-tabs-labs.component.ts"> </file>
 * </example>
 *
 * <example name="po-tabs-travel" title="PO Tabs - Travel">
 *  <file name="sample-po-tabs-travel/sample-po-tabs-travel.component.html"> </file>
 *  <file name="sample-po-tabs-travel/sample-po-tabs-travel.component.ts"> </file>
 * </example>
 *
 * <example name="po-tabs-business-conf" title="PO Tabs - Business Conference">
 *  <file name="sample-po-tabs-business-conf/sample-po-tabs-business-conf.component.html"> </file>
 *  <file name="sample-po-tabs-business-conf/sample-po-tabs-business-conf.component.ts"> </file>
 * </example>
 */
export declare class PoTabsComponent extends PoTabsBaseComponent implements OnInit, AfterViewInit, OnDestroy, AfterContentInit {
    changeDetector: ChangeDetectorRef;
    private readonly languageService;
    private readonly tabsService;
    tabsChildren: QueryList<PoTabComponent>;
    tabButton: QueryList<any>;
    tabDropdown: PoTabDropdownComponent;
    containerTabs: ElementRef;
    maxNumberOfTabs: number;
    literals: any;
    tabsDefault: any[];
    tabsDropdown: any[];
    initializeCalculation: boolean;
    initializeComponent: boolean;
    initCheckChangesTab: boolean;
    quantityTabsButton: any;
    defaultLastTabWidth: number;
    private previousActiveTab;
    private subscription;
    private subscriptionTabsService;
    private subscriptionTabActive;
    constructor();
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    get isShowTabDropdown(): any;
    get overflowedTabs(): any;
    get tabs(): any;
    get tabsChildrenArray(): Array<PoTabComponent>;
    closeListbox(): void;
    isVisibleTab(tab: any): boolean;
    onTabActiveByDropdown(tab: PoTabComponent, eventEmitter?: boolean): void;
    onTabActive(tab: PoTabComponent): void;
    onTabChangeState(tab: PoTabComponent | any): void;
    reorderTabs(tabToReorder: PoTabComponent, lastTab?: any): void;
    selectedTab(tab: PoTabComponent | any): void;
    trackByFn(_i: any, tab: PoTabComponent): string;
    private activeDistinctTab;
    private activeFirstTab;
    changeTabPositionByDropdown(tabToActivate: PoTabComponent, byContextsTabs?: boolean): void;
    private deactivateTab;
    updateTabsState(initialState?: boolean, tab?: PoTabComponent): void;
    executeTabsState(initialState: any, idByContextTabs?: string): void;
    calculateTabs(initializeCalculation?: boolean): void;
    handleKeyboardNavigationTab(initialIndex?: number): void;
    /**
     * Função que atribui o número de tabs fora do dropdown.
     *
     * Para utilizá-la é necessário ter a instância do componente no DOM, podendo ser utilizado o ViewChild da seguinte forma:
     *
     * ```
     * import { PoTabsComponent } from '@po-ui/ng-components';
     *
     * ...
     *
     * @ViewChild('poTab', { static: true }) poTab: PoTabsComponent;
     *
     * changeQuantityTabs() {
     *   this.poTab.setQuantityTabsButton(1); //Número de tabs
     * }
     * ```
     */
    setQuantityTabsButton(number: number): void;
    private initializeTabAccessibilityElements;
    private setTabIndex;
    private handleKeyDown;
    private handleArrowLeft;
    private handleHomeKey;
    private handleEndKey;
    private handleArrowRight;
    /**
     * Ativa a aba correspondente ao `id` informado.
     *
     * Para utilizá-la é necessário ter a instância do componente no DOM, podendo ser utilizado o ViewChild da seguinte forma:
     *
     * ```
     * import { PoTabsComponent } from '@po-ui/ng-components';
     *
     * ...
     *
     * @ViewChild('poTab', { static: true }) poTab: PoTabsComponent;
     *
     * focusOnTab() {
     *   this.poTab.activateTab('meu-id-da-aba');
     * }
     * ```
     *
     * @param id Identificador único da aba a ser ativada.
     */
    activateTab(id: string): void;
}
