import { ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core'; import { CliEngineSnapshot, CliPanelConfig, CliPanelPosition, CliPanelState, ICliCommandProcessor, ICliModule, ICliPanelRef } from '@qodalis/cli-core'; import { CliEngine, CliEngineOptions } from '@qodalis/cli'; import { CliComponent } from '../cli/cli.component'; import { CollapsableContentComponent } from '../collapsable-content/collapsable-content.component'; import { TabStatus, GlobalStatus } from './cli-panel-status.service'; import * as i0 from "@angular/core"; export interface TerminalPane { id: number; widthPercent: number; snapshot?: CliEngineSnapshot; } export interface TerminalTab { id: number; title: string; isEditing: boolean; panes: TerminalPane[]; } export interface TabContextMenu { visible: boolean; x: number; y: number; tabId: number; } export type CliPanelOptions = CliEngineOptions & CliPanelConfig; /** * A component that displays the CLI on the bottom of page. */ export declare class CliPanelComponent implements OnInit, OnDestroy, ICliPanelRef { private readonly elementRef; /** * The options for the CLI. */ options?: CliPanelOptions; /** * Optional list of CLI modules to register with each terminal pane. */ modules?: ICliModule[]; /** * Optional list of command processors to register with each terminal pane. * This allows passing processors without Angular DI (framework-agnostic pattern). * @deprecated Use modules instead. */ processors?: ICliCommandProcessor[]; onClose: EventEmitter; collapsed?: boolean; collapsedChange: EventEmitter; hidden?: boolean; hiddenChange: EventEmitter; maximized?: boolean; maximizedChange: EventEmitter; activeTabId?: number; activeTabIdChange: EventEmitter; position?: CliPanelPosition; positionChange: EventEmitter; height?: number; heightChange: EventEmitter; width?: number; widthChange: EventEmitter; onTabAdded: EventEmitter<{ tabId: number; }>; onTabClosed: EventEmitter<{ tabId: number; }>; onPaneSplit: EventEmitter<{ paneId: number; tabId: number; }>; onPaneClosed: EventEmitter<{ paneId: number; }>; collapsableContent: CollapsableContentComponent; cliComponents: QueryList; currentPosition: CliPanelPosition; themeStyles: Record; visible: boolean; tabs: TerminalTab[]; tabStatuses: Record; activePaneId: number; private _internalActiveTabId; private _internalCollapsed; private _internalHidden; private _internalMaximized; private _internalHeight; private _internalWidth; private nextTabId; private nextPaneId; private statusService; private destroy$; globalStatus: GlobalStatus; protected get resolvedCollapsed(): boolean; protected get resolvedHidden(): boolean; protected get resolvedMaximized(): boolean; protected get resolvedActiveTabId(): number; protected get resolvedHeight(): number; protected get resolvedWidth(): number; protected get resolvedPosition(): CliPanelPosition; contextMenu: TabContextMenu; paneResizing: boolean; private paneResizeTabId; private paneResizeDividerIndex; private paneResizeStartX; private paneResizeStartWidths; private paneResizeContainerWidth; private static readonly MIN_PANE_WIDTH_PERCENT; protected terminalHeight: string; protected initialized: boolean; private themeObserver?; constructor(elementRef: ElementRef); ngOnInit(): void; ngOnDestroy(): void; onDocumentClick(event: MouseEvent): void; onEscapeKey(): void; onPositionChange(position: CliPanelPosition): void; onToggle($event: boolean): void; onContentSizeChange(_event: number): void; addTab(title?: string): number; closeTab(id: number): void; selectTab(id: number): void; trackByTabId(_index: number, tab: TerminalTab): number; getTabDotClass(tabId: number): string; onPaneEngineReady(tabId: number, paneId: number, engine: CliEngine): void; trackByPaneId(_index: number, pane: TerminalPane): number; startRename(tab: TerminalTab): void; onTabDoubleClick(tab: TerminalTab): void; commitRename(tab: TerminalTab, value: string): void; onRenameKeydown(event: KeyboardEvent, tab: TerminalTab): void; onRenameBlur(event: FocusEvent, tab: TerminalTab): void; onTabContextMenu(event: MouseEvent, tab: TerminalTab): void; closeContextMenu(): void; contextMenuRename(): void; contextMenuDuplicate(): void; contextMenuClose(): void; contextMenuCloseOthers(): void; contextMenuCloseToTheRight(): void; contextMenuCloseAll(): void; splitPane(tabId?: number): number; closePane(paneId: number): void; contextMenuSplitRight(): void; onPaneResizeStart(event: MouseEvent, tabId: number, dividerIndex: number): void; onPaneResizeMove(event: MouseEvent): void; onPaneResizeEnd(): void; onPaneClick(tabId: number, paneId: number): void; open(): void; collapse(): void; toggleCollapse(): void; hide(): void; unhide(): void; toggleHide(): void; close(): void; maximize(): void; restore(): void; toggleMaximize(): void; resize(dimensions: { height?: number; width?: number; }): void; setPosition(pos: CliPanelPosition): void; renameTab(tabId: number, title: string): void; getEngine(paneId?: number): CliEngine | undefined; getState(): CliPanelState; private findTab; private getEngineForTab; private cancelAllEditing; private focusActiveTerminal; private focusPane; private normalizePaneWidths; private setupThemeSync; private syncThemeFromEngine; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }