import { CanvasRenderer, Ghostty } from 'ghostty-web'; import type { GhosttyVtModule } from './ghostty-vt'; import { GhosttyVtTerminal } from './ghostty-vt'; interface Disposable { dispose(): void; } interface ResizeEvent { cols: number; rows: number; } type Listener = (value: T) => void; /** * Lightweight Ghostty canvas terminal used by the web viewer. * * CanvasRenderer's built-in blink only toggles an internal flag and never * schedules paints. The full ghostty-web Terminal pairs that flag with a * continuous rAF loop; this wrapper instead owns blink timing and paints the * cursor overlay (solid while focused, hollow block while blurred). */ export declare class InlineGhosttyTerminal { readonly model: GhosttyVtTerminal; readonly renderer: CanvasRenderer; readonly ghostty: Ghostty; cols: number; rows: number; element?: HTMLDivElement; textarea?: HTMLTextAreaElement; private canvas?; private input?; private dataListeners; private resizeListeners; private scrollListeners; private frame; private pendingForce; private wheelListener?; private focused; private blinkPhaseVisible; private blinkTimer; private cursorColor; constructor(module: GhosttyVtModule, options: { cols?: number; rows?: number; fontSize?: number; fontFamily?: string; }); open(container: HTMLDivElement): void; write(data: string | Uint8Array): void; resize(cols: number, rows: number): void; fit(): void; private scheduleRender; private render; private paintCursorOverlay; private startBlinkTimer; private stopBlinkTimer; /** * Focused terminals blink indefinitely; unfocused terminals show a steady * hollow block. Call from DOM focusin/focusout and tab activation. */ setFocused(focused: boolean): void; /** Keep the cursor solid while the user is typing, then resume blinking. */ resetCursorBlink(): void; private listen; onData(listener: Listener): Disposable; onResize(listener: Listener): Disposable; onScroll(listener: Listener): Disposable; getViewportY(): number; scrollToLine(_line?: number): void; getMode(_mode?: number): boolean; registerLinkProvider(): Disposable; focus(): void; blur(): void; dispose(): void; } export {}; //# sourceMappingURL=inline-ghostty-terminal.d.ts.map