import { EventEmitter, OnDestroy, QueryList, AfterViewInit, ElementRef, SimpleChanges, OnChanges, OnInit } from '@angular/core';
import { EuiTabV2Component } from './eui-tab-v2/eui-tab-v2.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 EuiTabsV2Component implements OnInit, OnChanges, OnDestroy, AfterViewInit {
    get elementClass(): string;
    e2eAttr: string;
    /**
     * Index of the active tab
     *
     * @default 0
     */
    activeTabIndex: number;
    /**
     * Sets the `aria-label` attribute for the host element.
     *
     * @default 'eUI Tabs'
     */
    ariaLabel: string;
    isMainNavigation: boolean;
    /**
     * Event emitted when a tab is closed
     */
    tabClose: EventEmitter<{
        tab: EuiTabV2Component;
        index: number;
    }>;
    /**
     * Event emitted when a tab is activated
     */
    tabActivate: EventEmitter<{
        tab: EuiTabV2Component;
        index: number;
    }>;
    /**
     * Event emitted when a tab is clicked
     */
    tabClick: EventEmitter<{
        tab: EuiTabV2Component;
        index: number;
    }>;
    _tabs: QueryList<EuiTabV2Component>;
    euiTabsHeadersContainer: ElementRef;
    euiTabsHeaders: ElementRef;
    euiTabListItems: QueryList<ElementRef>;
    tabs: EuiTabV2Component[];
    scrolling: boolean;
    navigationLeftButtonDisabled: boolean;
    navigationRightButtonDisabled: boolean;
    currentOffset: number;
    protected tabId: string;
    private destroy$;
    private player;
    private stepMove;
    private scrollOffset;
    private scrollingCount;
    private resizeObserver;
    private cd;
    private builder;
    private euiAppShellService;
    /**
     * Width of the tabs headers container
     */
    get euiTabsHeadersContainerWidth(): number;
    /**
     * Width of the tabs headers
     */
    get euiTabsHeadersWidth(): number;
    ngOnChanges(c: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Activate a tab having index passed in parameter if exists.
     *
     * @param index Index of the tab to close
     * @param isAnimated Whether the tab activation should be animated
     * @param options Object with emitEvent property to emit the event or not
     */
    activateTab(index: number, isAnimated?: boolean, options?: {
        emitEvent: boolean;
    }): void;
    /**
     * Close a tab having index passed in parameter if exists.
         * @param index Index of the tab to close
     */
    closeTab(index: number): void;
    /**
     * Scroll to the left handler
     */
    goToLeft(): void;
    /**
     * Scroll to the rihgt handler
     */
    goToRight(): void;
    /**
     * Actions applied upon a keydown event
     *
     * @param i Index of the tab for each pressed key
     * @param event The keyboard event
     */
    protected onKeydown(i: number, event: KeyboardEvent): void;
    /**
     * Click handler for tab list item
     *
     * @param index Index of the tab clicked
     */
    protected tabListItemClick(index: number): void;
    /**
     * Activates a tab
     *
     * @param index Index of the tab to activate
     * @param isAnimated Whether the activation should be animated
     * @param options Object with emitEvent property to emit the event or not
     */
    protected activate(index: number, isAnimated?: boolean, options?: {
        emitEvent: boolean;
    }): void;
    /**
     * Closes a tab
     *
     * @param index Index of the tab to close
     * @param e
     */
    protected close(index: number, e: Event): void;
    /**
     * Checks if there are html elements within the tab panel, in order to focus or not the tab panel
     * @param index The tab index
     */
    protected onAttached(index: number): void;
    /**
     * Checks the existence of focusable elements
     * @param origin The element to check
     */
    private isFocusableElement;
    /**
     * Checks if the tabs headers are scrolling and calculates the scrolling position
     */
    private tabsScrollingHandler;
    /**
     * Sets the scroll position oon the tab header specified by index
     *
     * @param index Index of the tab header to scroll to
     * @param isAnimated Whether the tab activation should be animated
     */
    private setScrollToTabIndex;
    /**
     * 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 active tab is fully visible
     *
     * @param activeTab Index of the tab to check
     * @returns true if fully visible, false otherwise
     */
    private isActiveTabFullyVisible;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTabsV2Component, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiTabsV2Component, "eui-tabs-v2", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "activeTabIndex": { "alias": "activeTabIndex"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "isMainNavigation": { "alias": "isMainNavigation"; "required": false; }; }, { "tabClose": "tabClose"; "tabActivate": "tabActivate"; "tabClick": "tabClick"; }, ["_tabs"], ["eui-tabs-v2-right-content"], true, never>;
    static ngAcceptInputType_isMainNavigation: unknown;
}
//# sourceMappingURL=eui-tabs-v2.component.d.ts.map