import { FileStatNode, FileTreeModel } from '@theia/filesystem/lib/browser';
import { ApplicationShell, CompositeTreeNode, NavigatableWidget, OpenerService, TreeNode, Widget, TabBar } from '@theia/core/lib/browser';
import { WorkspaceService } from '@theia/workspace/lib/browser';
import { FileStat } from '@theia/filesystem/lib/common/files';
export interface OpenEditorNode extends FileStatNode {
    widget: Widget;
}
export declare namespace OpenEditorNode {
    function is(node: unknown): node is OpenEditorNode;
}
export declare class OpenEditorsModel extends FileTreeModel {
    static GROUP_NODE_ID_PREFIX: string;
    static AREA_NODE_ID_PREFIX: string;
    protected readonly applicationShell: ApplicationShell;
    protected readonly workspaceService: WorkspaceService;
    protected readonly openerService: OpenerService;
    protected _editorWidgetsByGroup: Map<number, {
        widgets: NavigatableWidget[];
        tabbar: TabBar<Widget>;
    }>;
    protected _editorWidgetsByArea: Map<ApplicationShell.Area, NavigatableWidget[]>;
    protected _lastEditorWidgetsByArea: Map<ApplicationShell.Area, NavigatableWidget[]>;
    protected cachedFileStats: Map<string, FileStat>;
    get editorWidgets(): NavigatableWidget[];
    getTabBarForGroup(id: number): TabBar<Widget> | undefined;
    protected init(): void;
    protected setupHandlers(): void;
    protected initializeRoot(): Promise<void>;
    protected updateOpenWidgets: import("lodash").DebouncedFunc<(layoutModifiedArea?: ApplicationShell.Area) => Promise<void>>;
    protected doUpdateOpenWidgets(layoutModifiedArea?: ApplicationShell.Area): Promise<void>;
    protected shouldRebuildTreeOnLayoutModified(area: ApplicationShell.Area): boolean;
    protected tryCreateWidgetGroupMap(): Map<Widget, CompositeTreeNode>;
    protected buildRootFromOpenedWidgets(widgetsByArea: Map<ApplicationShell.Area, NavigatableWidget[]>): Promise<CompositeTreeNode>;
    protected doOpenNode(node: TreeNode): void;
}
//# sourceMappingURL=navigator-open-editors-tree-model.d.ts.map