export interface ListViewportSizingOptions {
    /** Total terminal rows. */
    rows: number;
    /** Maximum number of rows/items to ever render for the list. */
    hardCap: number;
    /**
     * Rows to keep free for surrounding UI/chrome.
     * Claude Code commonly uses ~6 rows of slack to avoid Ink hitting the clear+redraw path.
     */
    reservedRows?: number;
    /** Minimum rows/items to render when possible. */
    minVisibleItems?: number;
}
/**
 * Compute a safe "max visible items" count for list UIs so we don't render content that
 * approaches/exceeds the terminal height (which can cause Ink to clear + redraw, i.e. flicker).
 */
export declare function getMaxVisibleItemsForTerminalRows({ rows, hardCap, reservedRows, minVisibleItems, }: ListViewportSizingOptions): number;
//# sourceMappingURL=overlaySizing.d.ts.map