import { Command, MenuPath } from '@theia/core'; import { SelectableTreeNode, CompositeTreeNode, SplitPanel, ExpandableTreeNode, Widget } from '@theia/core/lib/browser'; import { TerminalWidgetImpl } from '@theia/terminal/lib/browser/terminal-widget-impl'; export declare namespace TerminalManagerCommands { const MANAGER_NEW_TERMINAL_GROUP: Command; const MANAGER_DELETE_TERMINAL: Command; const MANAGER_RENAME_TERMINAL: Command; const MANAGER_NEW_PAGE_BOTTOM_TOOLBAR: Command; const MANAGER_DELETE_PAGE: Command; const MANAGER_ADD_TERMINAL_TO_GROUP: Command; const MANAGER_DELETE_GROUP: Command; const MANAGER_SHOW_TREE_TOOLBAR: Command; const MANAGER_MAXIMIZE_BOTTOM_PANEL_TOOLBAR: Command; const MANAGER_MINIMIZE_BOTTOM_PANEL_TOOLBAR: Command; const MANAGER_CLEAR_ALL: Command; const MANAGER_OPEN_VIEW: Command; const MANAGER_CLOSE_VIEW: Command; } export declare const TERMINAL_MANAGER_TREE_CONTEXT_MENU: string[]; /** * Configuration for special pages in the terminal manager tree. * Each entry maps a terminal `kind` to its page ID, display label, and icon. */ export interface SpecialPageConfig { readonly pageId: TerminalManagerTreeTypes.PageId; readonly label: string; readonly icon: string; } export declare namespace TerminalManagerTreeTypes { type TerminalKey = `terminal-${string}`; const generateTerminalKey: (widget: TerminalWidgetImpl) => TerminalKey; const isTerminalKey: (obj: unknown) => obj is TerminalKey; interface TerminalNode extends SelectableTreeNode, CompositeTreeNode { terminal: true; isEditing: boolean; label: string; id: TerminalKey; parentGroupId: GroupId; } type GroupId = `group-${string}`; const isGroupId: (obj: unknown) => obj is GroupId; interface GroupSplitPanel extends SplitPanel { id: GroupId; widgets: readonly TerminalWidgetImpl[]; } interface TerminalGroupNode extends SelectableTreeNode, ExpandableTreeNode { terminalGroup: true; isEditing: boolean; label: string; id: GroupId; parentPageId: PageId; counter: number; children: readonly TerminalNode[]; } type PageId = `page-${string}`; const isPageId: (obj: unknown) => obj is PageId; interface PageSplitPanel extends SplitPanel { id: PageId; widgets: readonly GroupSplitPanel[]; } interface PageNode extends SelectableTreeNode, ExpandableTreeNode { page: true; children: TerminalGroupNode[]; isEditing: boolean; label: string; id: PageId; counter: number; } type TerminalManagerTreeNode = PageNode | TerminalNode | TerminalGroupNode; type TerminalManagerValidId = PageId | TerminalKey | GroupId; const isPageNode: (obj: unknown) => obj is PageNode; const isTerminalNode: (obj: unknown) => obj is TerminalNode; const isGroupNode: (obj: unknown) => obj is TerminalGroupNode; const isTerminalManagerTreeNode: (obj: unknown) => obj is PageNode | TerminalNode; interface SelectionChangedEvent { activePageId: PageId | undefined; activeTerminalId: TerminalKey | undefined; activeGroupId: GroupId | undefined; } type ContextMenuArgs = [Widget, TerminalManagerValidId]; const toContextMenuArgs: (widget: Widget, node: TerminalManagerTreeNode) => ContextMenuArgs; const PAGE_NODE_MENU: MenuPath; const GROUP_NODE_MENU: MenuPath; const TERMINAL_NODE_MENU: MenuPath; } export type ReactInteraction = React.MouseEvent | React.KeyboardEvent; //# sourceMappingURL=terminal-manager-types.d.ts.map