/** * 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: `$`, `$.`, `$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 `$.`: the object's other top-level fields, whole. */ rest?: Record; } /** 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; /** 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