import type { Theme } from "../modes/theme/theme"; import type { State } from "./types"; export interface OutputBlockOptions { header?: string; headerMeta?: string; state?: State; sections?: Array<{ label?: string; lines: string[]; }>; width: number; applyBg?: boolean; } export declare function renderOutputBlock(options: OutputBlockOptions, theme: Theme): string[]; /** * Cached wrapper around `renderOutputBlock`. * * Since output blocks are re-rendered on every frame (via `render(width)` closures), * but their content rarely changes, this cache avoids redundant `visibleWidth()` and * `padding()` computations on ~99% of render calls. */ export declare class CachedOutputBlock { #private; /** Render with caching. Returns cached result if options haven't changed. */ render(options: OutputBlockOptions, theme: Theme): string[]; /** Invalidate the cache, forcing a rebuild on next render. */ invalidate(): void; }