/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
export interface ITabBarComponent extends IBaseComponent {
    activeTab: number;
    layoutMode: TabBarLayoutMode;
    layoutAlign: TabBarLayoutAlign;
    underline: boolean;
    autoActivate: boolean;
    stacked: boolean;
    scrollButtons: boolean;
    forceScrollButtons: boolean;
    activateTab(index: number): void;
    scrollTabIntoView(index: number): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-tab-bar': ITabBarComponent;
    }
    interface HTMLElementEventMap {
        'forge-tab-bar-activate': CustomEvent<ITabBarActivateEventData>;
    }
}
/**
 * The custom element class behind the `<forge-tab-bar>` element.
 *
 * @tag forge-tab-bar
 */
export declare class TabBarComponent extends BaseComponent implements ITabBarComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** Gets and sets the active tab index. */
    activeTab: number;
    /** Gets/sets the layout mode that controls how the tabs are sized and rendered. */
    layoutMode: TabBarLayoutMode;
    /** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */
    layoutAlign: TabBarLayoutAlign;
    /** Gets/sets whether the component displays an underline or not. Default is `false`. */
    underline: boolean;
    /** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */
    autoActivate: boolean;
    /** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */
    stacked: boolean;
    /** Gets/sets whether the scroll buttons can be displayed or not. Default is `true`. The component handles visibility automatically. */
    scrollButtons: boolean;
    /** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */
    forceScrollButtons: boolean;
    /**
     * Activates the tab at the given index.
     * @param index The index of the tab.
     */
    activateTab(index: number): void;
    /**
     * Scrolls the tab at the given index into view.
     * @param index The index of the tab.
     */
    scrollTabIntoView(index: number): void;
}
