/**
 * How a `run` value is paged: by items, never by text lines.
 *
 * A value that fits the inline budget is returned whole. A larger one is paged
 * by the unit a reader thinks in:
 *
 *   - an array: its elements (`path: "$"`);
 *   - an object holding arrays: the elements of its largest top-level array,
 *     e.g. the `rows` of a SQL result (`path: "$.rows"`), with the object's
 *     other fields kept whole beside the window (`rest`);
 *   - any other object: its entries as `{ key, value }` (`path: "$entries"`);
 *   - a long string: its lines (`path: "$lines"`).
 *
 * The window is whole items only: as many leading items as fit the budget,
 * and always at least one, so a page never ends in the middle of a row.
 */
/** A value whose pretty-printed JSON fits in this many lines is returned whole. */
export declare const VALUE_INLINE_LINES = 200;
export interface PagedValue {
    /** Where the paged items live in the value: `$`, `$.<key>`, `$entries`, or `$lines`. */
    path: string;
    /** Every item, in order: what the result store holds and `expand_result` pages. */
    items: unknown[];
    /** The leading items that fit the inline budget (at least one). */
    window: unknown[];
    /** For `$.<key>`: the object's other top-level fields, whole. */
    rest?: Record<string, unknown>;
}
/** True when the whole value fits the inline budget. */
export declare function fitsInline(value: unknown, budget?: number): boolean;
/** The items a value pages by, and where they live. */
export declare function pageableItems(value: unknown): Pick<PagedValue, "path" | "items" | "rest">;
/** Page a value that does not fit inline: every item, and the leading window of whole items. */
export declare function pageValue(value: unknown, budget?: number): PagedValue;
//# sourceMappingURL=value-paging.d.ts.map