export type GraphicsProtocol = "iterm" | "kitty" | "none"; /** * Detect which inline-image graphics protocol the current terminal supports. * * @param env Environment to inspect (defaults to `process.env`). * @param isTTY Whether stdout is a TTY (defaults to `process.stdout.isTTY`). * Graphics are only emitted to a real interactive terminal. */ export declare function detectGraphicsProtocol(env?: NodeJS.ProcessEnv, isTTY?: boolean): GraphicsProtocol; /** * Encode a base64 image payload into an inline-image escape sequence for the * given protocol. Returns an empty string for the "none" protocol so callers * can append unconditionally. * * When `rows` is given, the image is constrained to that many terminal cells * tall (aspect ratio preserved) and, for kitty, the cursor is told not to * move (`C=1`). Callers that interleave images with a TUI live frame need a * deterministic height — see `encodeInlineImageBlock`. */ export declare function encodeInlineImage(base64: string, protocol: GraphicsProtocol, rows?: number): string; /** Default preview height (in terminal rows) for inline image blocks. */ export declare const INLINE_IMAGE_ROWS = 12; /** * Encode an inline image as a fixed-height block whose visual height exactly * matches its newline count. * * A raw image escape occupies many terminal rows while contributing zero * newlines to the written stream — any TUI layer that counts `\n`s to erase * or reposition its live frame (Ink's log-update does exactly that) then * erases at the wrong offset, stranding fragments of the old frame in * scrollback (orphaned `⏺` rows around the image). * * This emits `rows` real newlines to reserve the space (all scrolling is * caused by plain newlines every layer can account for), saves the cursor, * jumps to the top of the reserved block, draws the height-constrained image * there, and restores the cursor to the line after the block. The returned * string contains exactly `rows` newlines and renders exactly `rows` tall. */ export declare function encodeInlineImageBlock(base64: string, protocol: GraphicsProtocol, options?: { rows?: number; leftPad?: string; }): string; //# sourceMappingURL=terminal-graphics.d.ts.map