import { EventEmitter, OnDestroy, QueryList, OnChanges, AfterViewInit, ViewContainerRef, ElementRef, SimpleChanges, OnInit } from '@angular/core';
import { EuiTabComponent } from './eui-tab/eui-tab.component';
import * as i0 from "@angular/core";
/**
 * @description
 * eUI Tabs component helps to organize content into separate views where only one view can be visible at a time.
 * Each tab's label is shown in the tab header and the active tab is designated with a primary ink bar visual.
 * The active tab may be set using the `activeTabIndex` input option or when the user selects one of the tab labels in the header.
 * When the list of tab labels exceeds the width of the header or its container, pagination controls appear to let the user scroll left and right across the tabs.
 */
export declare class EuiTabsComponent implements OnDestroy, AfterViewInit, OnChanges, OnInit {
    /**
     * @description
     * Computes and returns the CSS classes for the component based on its current state.
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get elementClass(): string;
    /**
     * Tabs in data approach
     *
     * @type {EuiTabComponent[]}
     */
    tabs: EuiTabComponent[];
    /**
     * Index of the active tab
     *
     * @default 0
     */
    activeTabIndex: any;
    /**
     * Sets the `data-e2e` attribute for the host element.
     *
     * @default 'eui-tabs'
     */
    e2eAttr: string;
    /**
     * The way the router will consider the url when used on tabs. 'prefix' | 'full'.
     *
     * @default 'prefix'
     */
    pathMatch: 'prefix' | 'full';
    /**
     * Event emitted when a tab is closed.
     */
    tabClose: EventEmitter<{
        tab: EuiTabComponent;
        index: number;
    }>;
    /**
     * Event emitted when a tab is selected.
     */
    tabSelect: EventEmitter<{
        tab: EuiTabComponent;
        index: number;
    }>;
    _tabs: QueryList<EuiTabComponent>;
    euiTabsRightContentTagDirective: EuiTabsRightContentTagDirective;
    euiTabLabelItems: QueryList<ViewContainerRef>;
    euiTabsItems: ElementRef;
    euiTabsItemsWrapper: ElementRef;
    scrolling: boolean;
    navigationLeftButtonDisabled: boolean;
    navigationRightButtonDisabled: boolean;
    currentOffset: number;
    isMainNavigation: boolean;
    isHandleChangeTab: boolean;
    isSubTabs: boolean;
    isVerticalTabs: boolean;
    private destroy$;
    private routerSubscription;
    private player;
    private stepMove;
    private scrollOffset;
    /**
     * For race condition reason, the wrapper width is not correctly calculated when the component passes from no-scroll state to scroll
     * state. To fix this issue, we count the number of times the getScrollingStatus method is called.
     *
     * Scenario 1: The number of tabs does not require any scroll:
     * - Without any fix the scroll will have a delta of 64 at the first activation, then on the first no-scroll to scroll state,
     * - we had 64 to the move
     *
     * Scenario 2: The number of tabs requires a scroll:
     * - In this case the wrapper width is correctly calculated, so we don't need to add the delta
     */
    private scrollingCount;
    private cd;
    private router;
    private builder;
    private elementRef;
    private euiAppShellService;
    ngOnChanges(c: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Listens to the content to be changed to recalculate the scrolling position and status.
     */
    onContentChanges(): void;
    /**
     * Scroll to left handler
     */
    goToLeft(): void;
    /**
     * Scroll to right handler
     */
    goToRight(): void;
    /**
     * Click handler for tab item
     *
     * @param index Index of the tab clicked
     */
    changeTab(index: number): void;
    /**
     * Handles the `keyup` event for a tab element at the specified index.
     *
     * When the user presses the "Enter" or "Space" key, this method checks if the tab at the given index
     * is enabled (not disabled). If so, it activates that tab and deactivates all others.
     *
     * @param e The keyboard event triggered by the keyup action.
     * @param index The index of the tab associated with the key event.
     */
    onKeyUp(e: KeyboardEvent, index: number): void;
    /**
     * Closes the tab specified by `index` parameter
     *
     * @param index Index of the tab to close
     * @param e Event of the click
     */
    closeTab(index: number, e: any): void;
    /**
     * Close a tab pass in parameter.
     *
     * @param index Index of the tab to close
     */
    close(index: number): void;
    /**
     * Checks if the active tab is fully visible
     *
     * @param activeTab Tab element to check
     * @returns true if fully visible, false otherwise
     */
    private isActiveTabFullyVisible;
    /**
     * Sets the scroll position of the tabs headers
     *
     * @param scrollTo Number to set on the margin-left style property
     * @param isAnimated Whether the tab activation should be animated
     */
    private setScrollTo;
    /**
     * Checks if the tabs headers are scrolling and calculates the scrolling position
     */
    private getScrollingStatus;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTabsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiTabsComponent, "eui-tabs", never, { "tabs": { "alias": "tabs"; "required": false; }; "activeTabIndex": { "alias": "activeTabIndex"; "required": false; }; "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "pathMatch": { "alias": "pathMatch"; "required": false; }; "isMainNavigation": { "alias": "isMainNavigation"; "required": false; }; "isHandleChangeTab": { "alias": "isHandleChangeTab"; "required": false; }; "isSubTabs": { "alias": "isSubTabs"; "required": false; }; "isVerticalTabs": { "alias": "isVerticalTabs"; "required": false; }; }, { "tabClose": "tabClose"; "tabSelect": "tabSelect"; }, ["euiTabsRightContentTagDirective", "_tabs"], ["euiTabsRightContent"], true, never>;
    static ngAcceptInputType_isMainNavigation: unknown;
    static ngAcceptInputType_isHandleChangeTab: unknown;
    static ngAcceptInputType_isSubTabs: unknown;
    static ngAcceptInputType_isVerticalTabs: unknown;
}
export declare class EuiTabsRightContentTagDirective {
    elementClass: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTabsRightContentTagDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EuiTabsRightContentTagDirective, "euiTabsRightContent", never, {}, {}, never, never, true, never>;
}
//# sourceMappingURL=eui-tabs.component.d.ts.map