/** * Content-driven composer height (classic parity for Shift+Enter multi-line). * * The shell passes a max text-row budget; the editor grows from 1 up to that * budget based on hard newlines and soft-wrap at the input width. */ /** Visual rows for the current prompt (newlines + width wrap). Empty → 1. */ export declare function countComposerVisualLines(text: string, wrapWidth: number): number; /** Clamp content rows into the [min, max] budget. */ export declare function resolveComposerTextRows(contentLines: number, maxRows: number, minRows?: number): number; /** * Max editable text rows the terminal can spare while keeping a chat floor. * `borderRows` accounts for the rounded input chrome around the textarea. */ export declare function maxComposerTextRows(opts: { readonly terminalRows: number; readonly statusHeight: number; readonly minChatRows: number; readonly maxCap: number; readonly borderRows?: number; }): number;