import type { CompletedItem } from "./app-items.js"; /** * Cheap, deterministic estimate of how many terminal rows a block of text * occupies once wrapped to `width`. Biased high (uses display width and counts * at least one row per source line) so the live-area clamp never UNDER-counts * and lets the frame overflow past the terminal height. */ export declare function estimateWrappedRows(text: string, columns: number): number; /** * Estimate the total rendered height (in terminal rows) of the live area: * every live item plus the in-flight streaming block. Each text block is * individually capped at `perItemBudget` because AssistantMessage/Markdown * truncate to that height, but their SUM is what can overflow the terminal — * which is exactly what this measures. */ export declare function estimateLiveAreaRows({ liveItems, streamingText, columns, perItemBudget, }: { liveItems: readonly CompletedItem[]; streamingText: string; columns: number; perItemBudget: number; }): number; /** * Decide whether the live area must be hard-clamped to `liveAreaBudget` rows. * Returns the clamp height when the estimated content would overflow the * budget (so the bottom-anchored container clips the oldest rows and keeps the * Ink-rendered frame strictly below the terminal height), or `undefined` when * the content fits and the area should stay compact (no reserved blank rows). */ export declare function getLiveAreaClampRows({ liveItems, streamingText, columns, liveAreaBudget, }: { liveItems: readonly CompletedItem[]; streamingText: string; columns: number; liveAreaBudget: number; }): number | undefined; //# sourceMappingURL=live-area-height.d.ts.map