import { DOMWidgetView, ViewList } from './widget';
import { BoxModel } from './widget_box';
import { TabBar } from 'phosphor/lib/ui/tabbar';
export declare class SelectionContainerModel extends BoxModel {
    defaults(): any;
}
export declare class AccordionModel extends SelectionContainerModel {
    defaults(): any;
}
export declare class AccordionView extends DOMWidgetView {
    initialize(parameters: any): void;
    /**
     * Called when view is rendered.
     */
    render(): void;
    /**
     * Set tab titles
     */
    update_titles(): void;
    /**
     * Only update the selection if the selection wasn't triggered
     * by the front-end.  It must be triggered by the back-end.
     */
    update_selected_index(options?: any): void;
    /**
     * Collapses an accordion tab.
     * @param  {number} index
     */
    collapseTab(index: any): void;
    /**
     * Expands an accordion tab.
     * @param  {number} index
     */
    expandTab(index: any): void;
    /**
     * Called when a child is removed from children list.
     * TODO: does this handle two different views of the same model as children?
     */
    remove_child_view(view: any): void;
    /**
     * Called when a child is added to children list.
     */
    add_child_view(model: any): any;
    /**
     * We remove this widget before removing the children as an optimization
     * we want to remove the entire container from the DOM first before
     * removing each individual child separately.
     */
    remove(): void;
    containers: any[];
    model_containers: any;
    children_views: ViewList;
}
export declare class TabModel extends SelectionContainerModel {
    defaults(): any;
}
export declare class TabView extends DOMWidgetView {
    /**
     * Public constructor.
     */
    initialize(parameters: any): void;
    /**
     * Called when view is rendered.
     */
    render(): void;
    /**
     * Called when a child is added to children list.
     */
    addChildView(model: any): any;
    removeChildView(child: any): void;
    /**
     * Update the contents of this view
     *
     * Called when the model is changed.  The model may have been
     * changed by another view or by a state update from the back-end.
     */
    update(options?: any): void;
    /**
     * Updates the tab page titles.
     */
    updateTitles(): void;
    /**
     * Updates the selected index.
     */
    updateSelectedIndex(options?: any): void;
    /**
     * Select a page.
     */
    selectPage(index: any): void;
    remove(): void;
    _onTabChanged(sender: any, args: any): void;
    _onTabCloseRequested(sender: any, args: any): void;
    childrenViews: ViewList;
    tabBar: TabBar;
    tabContents: HTMLDivElement;
}
