export interface HerdrWebTerminalSize { cols: number; rows: number; } export interface HerdrWebTerminalBackend { acquireWebTerminal(viewer: object): HerdrWebTerminalSize | null; resizeWebTerminal(viewer: object, cols: number, rows: number): HerdrWebTerminalSize | null; releaseWebTerminal(viewer: object): object | null; isWebTerminalOwner(viewer: object): boolean; } export interface HerdrWebTerminalBindingState { backend: HerdrWebTerminalBackend | null; initialSize: HerdrWebTerminalSize | null; } export interface HerdrWebTerminalResizeResult extends HerdrWebTerminalBindingState { size: HerdrWebTerminalSize | null; } /** * Keeps one WebSocket viewer attached to the current managed Herdr backend. * A worker-level /restart replaces the backend without closing WebSockets, so * every message must re-sync this binding before it handles resize ownership. */ export declare class HerdrWebTerminalBinding { private readonly viewer; private readonly resolveBackend; private attachedBackend; private lastSize; constructor(viewer: object, resolveBackend: () => HerdrWebTerminalBackend | null); sync(): HerdrWebTerminalBindingState; resize(cols: number, rows: number): HerdrWebTerminalResizeResult; /** * Re-attaches an already-connected viewer after an in-worker backend * replacement and re-applies the most recent browser grid. Unlike resize(), * this path needs no new browser event: /restart keeps the WebSocket alive. */ restore(): HerdrWebTerminalResizeResult; release(): object | null; } //# sourceMappingURL=herdr-web-terminal-binding.d.ts.map