import { BenchColumn, BenchColumnLayoutData, BenchColumnViewActivateEvent, BenchColumnViewAddEvent, BenchColumnViewDeactivateEvent, BenchColumnViewRemoveEvent, CollapseHandleActionEvent, Desktop, DesktopBenchEventMap, DesktopBenchModel, DesktopNavigationHandle, DesktopTab, DesktopTabArea, DisplayViewId, Event, EventHandler, FlexboxLayout, Form, HeaderTabBoxController, InitModelOf, KeyStrokeContext, Outline, OutlineOverview, OutlinePageChangedEvent, Page, PropertyChangeEvent, SimpleTab, SimpleTabBox, Splitter, SplitterMoveEvent, Table, TreeNodesSelectedEvent, Widget } from '../../index';
export declare class DesktopBench extends Widget implements DesktopBenchModel {
    model: DesktopBenchModel;
    eventMap: DesktopBenchEventMap;
    self: DesktopBench;
    desktop: Desktop;
    outline: Outline;
    outlineContent: OutlineContent;
    navigationHandle: DesktopNavigationHandle;
    headerTabArea: DesktopTabArea;
    columns: BenchColumn[];
    components: (BenchColumn | Splitter)[];
    tabBoxMap: Record<string, BenchColumn>;
    layoutData: BenchColumnLayoutData;
    headerTabAreaController: HeaderTabBoxController;
    changingCounter: number;
    changed: boolean;
    outlineContentVisible: boolean;
    navigationHandleVisible: boolean;
    layoutCacheKey: string[];
    desktopKeyStrokeContext: KeyStrokeContext;
    protected _removeViewInProgress: number;
    protected _updateOutlineContentTimeout: number;
    protected _desktopOutlineChangeHandler: EventHandler<Event<Desktop>>;
    protected _desktopPropertyChangeHandler: EventHandler<PropertyChangeEvent<any, Desktop>>;
    protected _desktopAnimationEndHandler: EventHandler<Event<Desktop>>;
    protected _outlineNodesSelectedHandler: EventHandler<TreeNodesSelectedEvent>;
    protected _outlinePageChangedHandler: EventHandler<OutlinePageChangedEvent>;
    protected _outlinePropertyChangeHandler: EventHandler<PropertyChangeEvent<any, Outline>>;
    protected _outlineContentDestroyHandler: EventHandler<Event<Widget>>;
    protected _outlineContentCssClassChangeHandler: EventHandler<PropertyChangeEvent<string, Widget>>;
    protected _viewAddHandler: EventHandler<BenchColumnViewAddEvent>;
    protected _viewRemoveHandler: EventHandler<BenchColumnViewRemoveEvent>;
    protected _viewActivateHandler: EventHandler<BenchColumnViewActivateEvent>;
    protected _viewDeactivateHandler: EventHandler<BenchColumnViewDeactivateEvent>;
    constructor();
    static VIEW_MIN_HEIGHT: any;
    static VIEW_MIN_WIDTH: any;
    static VIEW_AREA_COLUMN_INDEX: {
        readonly LEFT: 0;
        readonly CENTER: 1;
        readonly RIGHT: 2;
    };
    static VIEW_AREA_COLUMN_CLASSES: readonly ["west", "center", "east"];
    protected _init(model: InitModelOf<this>): void;
    /** @internal */
    _setTabArea(headerTabArea: DesktopTabArea): void;
    protected _createColumns(): void;
    protected _initKeyStrokeContext(): void;
    protected _render(): void;
    protected _createLayout(): FlexboxLayout;
    visibleColumns(): BenchColumn[];
    protected _renderColumns(): void;
    protected _renderColumn(column: BenchColumn): void;
    protected _remove(): void;
    updateFirstLastMarker(): void;
    protected _renderOutlineContent(): void;
    protected _removeOutlineContent(): void;
    protected _createNavigationHandle(): DesktopNavigationHandle;
    protected _renderNavigationHandle(): void;
    protected _removeNavigationHandle(): void;
    protected _renderNavigationHandleVisible(): void;
    /**
     * is called in post render of desktop used to initialize the ui state. E.g. show default views
     */
    postRender(): void;
    setChanging(changing: boolean): void;
    updateLayoutData(layoutData: BenchColumnLayoutData): void;
    setLayoutData(layoutData: BenchColumnLayoutData): void;
    getLayoutData(): BenchColumnLayoutData;
    setNavigationHandleVisible(visible: boolean): void;
    setOutline(outline: Outline): void;
    setOutlineContent(content: OutlineContent): void;
    setOutlineContentVisible(visible: boolean): void;
    bringToFront(): void;
    sendToBack(): void;
    protected _updateOutlineContentHasDimmedBackground(): void;
    protected _computeOutlineContentForPage(page: Page): OutlineContent;
    protected _computeOutlineContent(): OutlineContent;
    updateOutlineContent(): void;
    updateOutlineContentDebounced(): void;
    updateNavigationHandleVisibility(): void;
    protected _onDesktopOutlineChange(event: Event<Desktop>): void;
    protected _onOutlineContentDestroy(event: Event<Widget>): void;
    protected _onOutlineContentCssClassChange(event: PropertyChangeEvent<string, Widget>): void;
    protected _onOutlineNodesSelected(event: TreeNodesSelectedEvent): void;
    protected _onOutlinePageChanged(event: OutlinePageChangedEvent): void;
    protected _onOutlinePropertyChange(event: PropertyChangeEvent<any, Outline>): void;
    protected _onDesktopNavigationVisibleChange(): void;
    protected _onDesktopNavigationHandleVisibleChange(): void;
    protected _onDesktopAnimationEnd(event: Event<Desktop>): void;
    protected _onBenchLayoutDataChange(): void;
    protected _onDesktopPropertyChange(event: PropertyChangeEvent<any, Desktop>): void;
    protected _onNavigationHandleAction(event: CollapseHandleActionEvent): void;
    protected _revalidateSplitters(): void;
    protected _updateSplitterMovable(): void;
    protected _onSplitterMove(event: SplitterMoveEvent): void;
    protected _onViewAdd(event: BenchColumnViewAddEvent): void;
    protected _onViewRemove(event: BenchColumnViewRemoveEvent): void;
    protected _onViewActivate(event: BenchColumnViewActivateEvent): void;
    protected _onViewDeactivate(event: BenchColumnViewDeactivateEvent): void;
    addView(view: OutlineContent, activate?: boolean): void;
    activateView(view: OutlineContent): void;
    protected _getColumn(displayViewId: DisplayViewId): BenchColumn;
    removeView(view: OutlineContent, showSiblingView?: boolean): void;
    getComponents(): (BenchColumn | Splitter)[];
    getTabBox(displayViewId: DisplayViewId): SimpleTabBox<OutlineContent>;
    visibleTabBoxes(): SimpleTabBox<OutlineContent>[];
    hasView(view: OutlineContent): boolean;
    getViews(displayViewId?: string): OutlineContent[];
    getViewTab(view: OutlineContent): SimpleTab<OutlineContent>;
    getTabs(): DesktopTab[];
    _getTabsForDisplayViewId(displayViewId: DisplayViewId): DesktopTab[];
    /**
     * @returns all the currently active views (the selected ones) of all the visible tab boxes
     */
    activeViews(): OutlineContent[];
    static normalizeDisplayViewId(displayViewId: DisplayViewId): DisplayViewId;
}
export type OutlineContent = Form | Table | OutlineOverview;
//# sourceMappingURL=DesktopBench.d.ts.map