import type { Doc, LedgerNode, TableColumn, TableRow, Text } from "./doc.js"; import { type ResolvedStyle } from "./paint-kit.js"; /** * Label–value pairs with each value starting at `valueStart`. A label that * leaves less than `gap` cells before it, or a value whose longest word cannot * fit beside it or that would get less than a short line, moves the value * below the label instead of splitting it. Unbounded output never moves a * value: a long label pushes its own value right instead. */ export declare const paintFields: (fields: ReadonlyArray<{ readonly label: Text; readonly value: Text; }>, style: ResolvedStyle, options: { readonly indent: number; readonly valueStart: number; readonly gap: number; }) => ReadonlyArray; /** * A table sits behind the gutter: its header and unmarked rows leave the * gutter blank, and a row that needs attention puts its status mark there. * Stacked rows carry their mark on their first field. */ export declare const paintTable: (columns: ReadonlyArray, rows: ReadonlyArray, style: ResolvedStyle, indent: number) => ReadonlyArray; /** * One ledger: a dim header line, one gutter-marked line per row, and a fold * line for each group of rows that repeat an outcome. Columns after the name * start at the value column, so a ledger, its fields, and its answers share * one lane. * * Under width pressure a ledger drops its `optional` columns and then stacks, * keeping each row's mark and name on one line with its remaining cells dim * beneath; it never drops a column whose value has nowhere else to appear. */ export declare const paintLedger: (node: LedgerNode, style: ResolvedStyle, indent: number, paintChildren: (doc: Doc, style: ResolvedStyle, mark: number, content: number) => ReadonlyArray) => ReadonlyArray; //# sourceMappingURL=paint-grid.d.ts.map