import { Event, EventHandler, HtmlComponent, InitModelOf, LayoutData, SimpleTabArea, SimpleTabBoxController, SimpleTabBoxEventMap, SimpleTabBoxModel, SimpleTabView, Widget } from '../index';
export declare class SimpleTabBox<TView extends SimpleTabView = SimpleTabView> extends Widget implements SimpleTabBoxModel<TView> {
    model: SimpleTabBoxModel<TView>;
    eventMap: SimpleTabBoxEventMap<TView>;
    self: SimpleTabBox<any>;
    tabArea: SimpleTabArea<TView>;
    viewStack: TView[];
    currentView: TView;
    controller: SimpleTabBoxController<TView>;
    layoutData: LayoutData;
    viewContent: HtmlComponent;
    $viewContent: JQuery;
    $tabArea: JQuery;
    protected _removeViewInProgress: number;
    protected _viewDestroyedHandler: EventHandler<Event<TView>>;
    constructor();
    protected _init(model: InitModelOf<this>): void;
    protected _render(): void;
    protected _renderProperties(): void;
    protected _renderTabArea(): void;
    protected _renderView(view: TView): void;
    postRender(): void;
    activateView(view: TView): void;
    setLayoutData(layoutData: LayoutData): void;
    getLayoutData(): LayoutData;
    /**
     * @param bringToTop whether the view should be placed on top of the view stack. the view tab will be selected. Default is true.
     */
    addView(view: TView, bringToTop?: boolean): void;
    /**
     * @returns the view which is going to be the sibling to insert the new view tab after.
     */
    protected _addToViewStack(view: TView, bringToTop: boolean): TView;
    protected _addDestroyListener(view: TView): void;
    protected _removeDestroyListener(view: TView): void;
    protected _onViewDestroyed(event: Event<TView>): void;
    removeView(view: TView, showSiblingView?: boolean): void;
    getController(): SimpleTabBoxController<TView>;
    viewCount(): number;
    hasViews(): boolean;
    hasView(view: TView): boolean;
    getViews(displayViewId?: string): TView[];
}
//# sourceMappingURL=SimpleTabBox.d.ts.map