export interface TransientSnapshot { cols: number; rows: number; /** Raw ANSI captured from tmux capture-pane. Useful for hashing/dedup. */ ansi: string; } /** Attempt to capture a fresh ANSI snapshot from an observe backend. Returns * null if the backend isn't observe-capable, the pane has gone away, or * the external backend refuses to answer. Callers should fall back to the legacy renderer * path on null. */ export declare function tryCapturePipeSnapshot(backend: unknown, fallbackCols: number, fallbackRows: number): TransientSnapshot | null; /** * True when the backend's screen can change WITHOUT bumping the worker's * onPtyData activity watermark — i.e. an observe backend that has paused its * change-emission poller for a live web-attach (ZellijObserveBackend). In that * window the watermark is not a sound snapshot-invalidation source. */ export declare function isScreenSelfDriven(backend: unknown): boolean; /** * Whether startScreenUpdates must (re)capture the pane this tick. * * Steady state: the screen is reconstructed only when `lastPtyActivityAtMs` * advances — onPtyData is the single point that both bumps it and feeds the * renderer, so an unchanged watermark means a byte-identical screen and a * capture would be pure waste. That invariant fails when `screenSelfDriven` is * true (observe backend with emission paused for a live attach): the pane keeps * changing but the watermark is frozen, so we must capture unconditionally — * the pre-optimization behaviour — until the attach drops and the poller (hence * the watermark) resumes. */ export declare function shouldCaptureScreen(opts: { ptyActivity: number; lastCapturedPtyActivity: number; screenSelfDriven: boolean; }): boolean; /** Render a tmux pipe-pane snapshot to a PNG buffer. Returns null when the * backend can't provide a snapshot — caller falls back to the legacy * long-lived-renderer path. */ export declare function snapshotToPng(backend: unknown, fallbackCols: number, fallbackRows: number): Promise<{ png: Buffer; ansi: string; content: string; } | null>; /** Render a tmux pipe-pane snapshot to filtered text (drops the bare prompt * + input echo lines, same rules as TerminalRenderer.snapshot()). Returns * null when the backend can't provide a snapshot. */ export declare function snapshotToText(backend: unknown, fallbackCols: number, fallbackRows: number, opts: { filter: boolean; }): Promise<{ content: string; ansi: string; } | null>; //# sourceMappingURL=transient-snapshot.d.ts.map