import { AbstractLayout, EnumObject, Event, EventHandler, InitModelOf, SimpleTab, SimpleTabAreaEventMap, SimpleTabAreaModel, SimpleTabView, TabbableCoordinator, Widget } from '../index';
export type SimpleTabAreaPosition = EnumObject<typeof SimpleTabArea.Position>;
export type SimpleTabAreaDisplayStyle = EnumObject<typeof SimpleTabArea.DisplayStyle>;
export declare class SimpleTabArea<TView extends SimpleTabView = SimpleTabView> extends Widget implements SimpleTabAreaModel<TView> {
    model: SimpleTabAreaModel<TView>;
    eventMap: SimpleTabAreaEventMap<TView>;
    self: SimpleTabArea<any>;
    static Position: {
        readonly TOP: "top";
        readonly BOTTOM: "bottom";
        readonly RIGHT: "right";
        readonly LEFT: "left";
    };
    static DisplayStyle: {
        readonly DEFAULT: "default";
        readonly SPREAD_EVEN: "spreadEven";
    };
    position: SimpleTabAreaPosition;
    displayStyle: SimpleTabAreaDisplayStyle;
    tabs: SimpleTab<TView>[];
    tabbableCoordinator: TabbableCoordinator;
    selectOnFocus: boolean;
    protected _selectedViewTab: SimpleTab<TView>;
    protected _tabClickHandler: EventHandler<Event<SimpleTab<TView>>>;
    constructor();
    protected _init(model: InitModelOf<this>): void;
    protected _render(): void;
    protected _createLayout(): AbstractLayout;
    protected _renderProperties(): void;
    setPosition(position: SimpleTabAreaPosition): void;
    protected _setPosition(position: SimpleTabAreaPosition): void;
    protected _renderPosition(): void;
    protected _cssClassForPosition(position: SimpleTabAreaPosition): string;
    setDisplayStyle(displayStyle: SimpleTabAreaDisplayStyle): void;
    protected _renderDisplayStyle(): void;
    protected _renderTabs(): void;
    protected _renderTab(tab: SimpleTab<TView>): void;
    protected _renderVisible(): void;
    protected _onTabClick(event: Event<SimpleTab<TView>>): void;
    getTabs(): SimpleTab<TView>[];
    /**
     * @param true to also return the visible tabs that are currently overflown. Default is false.
     */
    getVisibleTabs(includeOverflown?: boolean): SimpleTab<TView>[];
    selectTab(viewTab: SimpleTab<TView>): void;
    deselectTab(viewTab: SimpleTab<TView>): void;
    getSelectedTab(): SimpleTab<TView>;
    addTab(tab: SimpleTab<TView>, sibling?: SimpleTab<TView>): void;
    destroyTab(tab: SimpleTab<TView>): void;
    /**
     * @internal
     */
    _updateTabbableItems(): void;
}
//# sourceMappingURL=SimpleTabArea.d.ts.map