import type { CellMetrics } from "../../renderer/dom/dom-renderer.js"; import type { TerminalEventRecord } from "../recording.js"; import type { TerminalDebugNode, TerminalNode } from "./types.js"; export interface CliEventManager { register: (node: Omit & { id?: string; }) => TerminalNode; update: (id: string, next: Partial>) => void; unregister: (id: string) => void; setMetrics: (next: CellMetrics) => void; canSelectAt: (cellX: number, cellY: number) => boolean; autoScrollSelectionAt: (originCellX: number, originCellY: number, pointerCellY: number) => number; focus: (id: string | null) => void; getFocused: () => string | null; dispatch: (event: TerminalEventRecord) => boolean; debugNodes: () => TerminalDebugNode[]; dispose: () => void; } export declare function createCliEventManager(options?: Readonly<{ record?: (event: TerminalEventRecord) => void; onFocusChange?: (prev: string | null, next: string | null) => void; }>): CliEventManager;