/** * @license * Copyright 2026 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; /** * A live region that grows to fit its content, never shrinks on its own, and * never outgrows the terminal. * * The no-shrink rule is the point. A block sized to its content drags * everything below it — the footer most of all — up the screen every time a * list gets shorter, and a run whose footer is a moving target is a run nobody * can read while it works. Here the height is a high-water mark: it rises as * rows arrive, holds when they leave (the extra rows are simply blank), and * comes back down only when the window itself does. * * When content still overflows, the region shows its tail — the live work sorts * last — and draws a one-column gutter beside it. The gutter costs no rows, * which matters most exactly when rows are what ran out. */ export declare function ScrollRegion({ budgetRows, children, }: { /** Rows the region may occupy at most; recomputed by the caller on resize. */ readonly budgetRows: number; readonly children?: React.ReactNode; }): React.ReactElement;