import { TabBar, Widget, DockPanel, Title } from '@phosphor/widgets';
import { Signal } from '@phosphor/signaling';
import { DisposableCollection } from '../../common/disposable';
import { CorePreferences } from '../core-preferences';
import { Emitter, Event } from '../../common';
export declare const MAXIMIZED_CLASS = "theia-maximized";
export declare const ACTIVE_TABBAR_CLASS = "theia-tabBar-active";
export declare const MAIN_AREA_ID = "theia-main-content-panel";
export declare const BOTTOM_AREA_ID = "theia-bottom-content-panel";
/**
 * This specialization of DockPanel adds various events that are used for implementing the
 * side panels of the application shell.
 */
export declare class TheiaDockPanel extends DockPanel {
    protected readonly preferences?: CorePreferences | undefined;
    /**
     * Emitted when a widget is added to the panel.
     */
    readonly widgetAdded: Signal<this, Widget>;
    /**
     * Emitted when a widget is activated by calling `activateWidget`.
     */
    readonly widgetActivated: Signal<this, Widget>;
    /**
     * Emitted when a widget is removed from the panel.
     */
    readonly widgetRemoved: Signal<this, Widget>;
    protected readonly onDidToggleMaximizedEmitter: Emitter<Widget>;
    readonly onDidToggleMaximized: Event<Widget>;
    protected readonly onDidChangeCurrentEmitter: Emitter<Title<Widget> | undefined>;
    get onDidChangeCurrent(): Event<Title<Widget> | undefined>;
    constructor(options?: DockPanel.IOptions, preferences?: CorePreferences | undefined);
    isElectron(): boolean;
    protected handleMenuBarVisibility(newValue: string): void;
    protected _currentTitle: Title<Widget> | undefined;
    get currentTitle(): Title<Widget> | undefined;
    get currentTabBar(): TabBar<Widget> | undefined;
    findTabBar(title: Title<Widget>): TabBar<Widget> | undefined;
    protected readonly toDisposeOnMarkAsCurrent: DisposableCollection;
    markAsCurrent(title: Title<Widget> | undefined): void;
    markActiveTabBar(title?: Title<Widget>): void;
    addWidget(widget: Widget, options?: DockPanel.IAddOptions): void;
    activateWidget(widget: Widget): void;
    protected onChildRemoved(msg: Widget.ChildMessage): void;
    nextTabBarWidget(widget: Widget): Widget | undefined;
    nextTabBarInPanel(tabBar: TabBar<Widget>): TabBar<Widget> | undefined;
    previousTabBarWidget(widget: Widget): Widget | undefined;
    previousTabBarInPanel(tabBar: TabBar<Widget>): TabBar<Widget> | undefined;
    protected readonly toDisposeOnToggleMaximized: DisposableCollection;
    toggleMaximized(): void;
    protected maximizedElement: HTMLElement | undefined;
    protected getMaximizedElement(): HTMLElement;
}
export declare namespace TheiaDockPanel {
    const Factory: unique symbol;
    interface Factory {
        (options?: DockPanel.IOptions): TheiaDockPanel;
    }
}
//# sourceMappingURL=theia-dock-panel.d.ts.map