import { EventEmitter } from "../../stencil-public-runtime";
import { ColorType, TabOrientationType, TabSizeType, TabType } from "./constants";
import { GovTabControllerItem } from "./gov-tabs.types";
import { Nullable } from "../../types/interfaces";
import { Attributes } from "../../helpers/Dom/attribute";
export declare class GovTabs {
    private h;
    private triggerRefs;
    private attributeObserver;
    constructor();
    host: HTMLGovTabsElement;
    /**
     * Tabs type
     */
    readonly type: TabType;
    /**
     * Tabs size.
     */
    readonly size?: TabSizeType;
    /**
     * Style variation of the tab chips.
     */
    readonly color?: ColorType;
    /**
     * Tabs orientation
     */
    readonly orientation: TabOrientationType;
    /**
     * Icon and description display direction
     */
    readonly direction: 'row' | 'column';
    /**
     * Emitted when the tab is changed.
     */
    govChange: EventEmitter<HTMLGovTabsItemElement>;
    validateType(newValue: string): void;
    validateColor(newValue: string): void;
    validateSize(newValue: string): void;
    controllers: GovTabControllerItem[];
    focusIndex: number;
    inheritedAttributes: Attributes;
    componentDidLoad(): void;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    onAriaAttributeChange(attributeName: string, newValue: string): void;
    private prepareControllers;
    private setActiveByIdentifier;
    private reRender;
    render(): any;
    private getCurrentTab;
    private onSelectHandler;
    private onKeydownHandler;
    private goToPrevNext;
    /**
     * Regenerate tabs controllers
     */
    refresh(): Promise<void>;
    /**
     * Returns the currently selected tabs-item
     */
    currentTab(): Promise<Nullable<HTMLGovTabsItemElement>>;
    /**
     * Regenerate tabs controllers
     */
    setActiveTab(identifier: string): Promise<void>;
    /**
     * Regenerate tabs controllers
     */
    rerender(): Promise<void>;
}
