/** * useTerminalCore — engine-agnostic terminal session wiring. * * Owns: * - creating a TerminalView (xterm | restty) via injectable factory * - TerminalBackend PTY output → view.write * - view.onData → backend.pty.write * - fit / resize → backend.terminal.resize when active * * Does not own engine-specific DOM details beyond a host container ref. */ import type { TerminalCoreState, TerminalCoreActions } from './renderers/types.js'; import type { TerminalEngineId, TerminalViewFactory } from './views/types.js'; export interface UseTerminalCoreOptions { sessionId: string; terminalId: string; cols?: number; rows?: number; isActive?: boolean; autoResize?: boolean; onResize?: (cols: number, rows: number) => void; onInput?: (data: string) => void; onFocus?: () => void; onBlur?: () => void; fontSize?: number; fontFamily?: string; convertEol?: boolean; suppressTerminalResponses?: boolean; /** Terminal rendering engine (default: xterm). */ engine?: TerminalEngineId; /** * Injectable view factory (tests / custom engines). * Defaults to {@link defaultTerminalViewFactory}. */ createView?: TerminalViewFactory; /** Restty: Ghostty builtin theme name. */ ghosttyThemeName?: string; /** Restty: WebGPU / WebGL2 preference. */ resttyRenderer?: 'auto' | 'webgpu' | 'webgl2'; resttyLigatures?: boolean; resttyFontHinting?: boolean; resttyAlphaBlending?: 'native' | 'linear' | 'linear-corrected'; resttyNerdIconScale?: number; } export interface UseTerminalCoreResult { state: TerminalCoreState; actions: TerminalCoreActions; /** Last engine create error, if any. */ error: Error | null; } export declare function useTerminalCore({ sessionId, terminalId, cols, rows, isActive, autoResize, onResize, onInput, onFocus, onBlur, fontSize, fontFamily, convertEol, suppressTerminalResponses, engine, createView, ghosttyThemeName, resttyRenderer, resttyLigatures, resttyFontHinting, resttyAlphaBlending, resttyNerdIconScale, }: UseTerminalCoreOptions): UseTerminalCoreResult; export default useTerminalCore; //# sourceMappingURL=useTerminalCore.d.ts.map