/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
import { ITabBarChangeEventData } from './tab-bar-constants';
export interface ITabBarComponent extends IBaseComponent {
    disabled: boolean;
    activeTab: number | null | undefined;
    vertical: boolean;
    clustered: boolean;
    stacked: boolean;
    secondary: boolean;
    inverted: boolean;
    autoActivate: boolean;
    scrollButtons: boolean;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-tab-bar': ITabBarComponent;
    }
    interface HTMLElementEventMap {
        'forge-tab-bar-change': CustomEvent<ITabBarChangeEventData>;
    }
}
/**
 * @tag forge-tab-bar
 *
 * @summary Tabs organize content across different screens and views.
 *
 * @description
 * Use tabs to group content into helpful categories. Tabs are typically placed
 * above the content they relate to. Tabs can be used to navigate between screens,
 * or to group related content within a screen.
 *
 * @property {boolean} disabled - The disabled state of the tab bar.
 * @property {number} activeTab - The index of the active tab.
 * @property {boolean} vertical - Controls whether the tab bar is vertical or horizontal.
 * @property {boolean} clustered - Controls whether the tabs stretch the full width of their container or cluster together at their minimum width.
 * @property {boolean} stacked - Controls whether the tabs are taller to allow for slotted leading/trailing elements.
 * @property {boolean} secondary - Controls whether the tabs are styled as secondary tab navigation.
 * @property {boolean} inverted - Controls whether the tabs are rendered inverted (tab indicator at top instead of bottom).
 * @property {boolean} autoActivate - Controls whether the tabs are automatically activated when receiving focus.
 * @property {boolean} scrollButtons - Controls whether scroll buttons are displayed when the tabs overflow their container.
 *
 * @attribute disabled - The disabled state of the tab bar.
 * @attribute active-tab - The index of the active tab.
 * @attribute vertical - Controls whether the tab bar is vertical or horizontal.
 * @attribute clustered - Controls whether the tabs stretch the full width of their container or cluster together at their minimum width.
 * @attribute stacked - Controls whether the tabs are taller to allow for slotted leading/trailing elements.
 * @attribute secondary - Controls whether the tabs are styled as secondary tab navigation.
 * @attribute auto-activate - Controls whether the tabs are automatically activated when receiving focus.
 * @attribute scroll-buttons - Controls whether scroll buttons are displayed when the tabs overflow their container.
 *
 * @event forge-tab-bar-change {CustomEvent<ITabBarChangeEventData>} - Dispatches when the active tab changes.
 *
 * @cssproperty --forge-tab-bar-justify - The `justify-content` value for the tab bar flex container.
 * @cssproperty --forge-tab-bar-stretch - The `flex` value for the child `<forge-tab>` elements.
 * @cssproperty --forge-tab-bar-divider-color - The color of the divider.
 * @cssproperty --forge-tab-bar-divider-thickness - The thickness of the divider.
 *
 * @csspart container - The container element.
 * @csspart scroll-container - The scroll container element.
 */
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;
    disabled: boolean;
    activeTab: number | null | undefined;
    vertical: boolean;
    clustered: boolean;
    stacked: boolean;
    secondary: boolean;
    inverted: boolean;
    autoActivate: boolean;
    scrollButtons: boolean;
}
