import { EllipsisMenu, EnumObject, EventHandler, InitModelOf, KeyStrokeContext, PropertyChangeEvent, SomeRequired, Tab, TabAreaEventMap, TabAreaModel, TabBox, TabItem, Widget } from '../../../index';
export type TabAreaStyle = EnumObject<typeof TabArea.DisplayStyle>;
export declare class TabArea extends Widget implements TabAreaModel {
    model: TabAreaModel;
    initModel: SomeRequired<this['model'], 'parent' | 'tabBox'>;
    eventMap: TabAreaEventMap;
    self: TabArea;
    tabBox: TabBox;
    tabs: Tab[];
    displayStyle: TabAreaStyle;
    hasSubLabel: boolean;
    selectedTab: Tab;
    ellipsis: EllipsisMenu;
    $selectionMarker: JQuery;
    protected _tabItemPropertyChangeHandler: EventHandler<PropertyChangeEvent>;
    protected _tabPropertyChangeHandler: EventHandler<PropertyChangeEvent>;
    constructor();
    static DisplayStyle: {
        readonly DEFAULT: "default";
        readonly SPREAD_EVEN: "spreadEven";
    };
    protected _init(options: InitModelOf<this>): void;
    protected _createKeyStrokeContext(): KeyStrokeContext;
    protected _initKeyStrokeContext(): void;
    protected _render(): void;
    protected _renderProperties(): void;
    protected _remove(): void;
    setSelectedTabItem(tabItem: TabItem): void;
    getTabForItem(tabItem: TabItem): Tab;
    setSelectedTab(tab: Tab): void;
    protected _setSelectedTab(tab: Tab): void;
    protected _renderSelectedTab(): void;
    isTabItemFocused(tabItem: TabItem): boolean;
    focusTabItem(tabItem: TabItem): boolean;
    focusTab(tab: Tab): boolean;
    setTabItems(tabItems: TabItem[]): void;
    protected _setTabs(tabItems: TabItem[]): void;
    protected _renderTabs(): void;
    protected _removeTabs(tabs?: Tab[]): void;
    setDisplayStyle(displayStyle: TabAreaStyle): void;
    protected _renderDisplayStyle(): void;
    protected _onTabItemFocus(): void;
    protected _onTabItemBlur(): void;
    protected _updateHasSubLabel(): void;
    visibleTabs(): Tab[];
    protected _setHasSubLabel(hasSubLabel: boolean): void;
    protected _renderHasSubLabel(): void;
    selectNextTab(focusTab: boolean): void;
    selectPreviousTab(focusTab: boolean): void;
    protected _moveSelectionHorizontal(directionRight: boolean, focusTab: boolean): void;
    protected _setTabbableItem(tab: Tab | EllipsisMenu): void;
    protected _onTabPropertyChange(event: PropertyChangeEvent<any, Tab>): void;
    protected _onTabItemPropertyChange(event: PropertyChangeEvent): void;
}
//# sourceMappingURL=TabArea.d.ts.map