/** * The rules of a `'booktabs'` table (#625): LaTeX's `\toprule`, `\midrule`, * `\cmidrule` and `\bottomrule`, computed once from a laid-out table (or a * slice of one) so that every renderer strokes the same lines. */ import type { TableContinuedFootRule, TableSpanRules } from '../types.js'; import type { VDTResourceTableLayout, VDTTableStroke } from '../vdt.js'; /** The widths (px) and options of a booktabs table, resolved. */ export interface BooktabsRuleSpec { /** Top and bottom rules. */ heavyPx: number; /** Rule under the header rows, group rules, a `'light'` continued foot. */ lightPx: number; /** Rules under spanning header cells. */ spanPx: number; spanRules: TableSpanRules; /** How much a `'trimmed'` span rule is shortened at each end. */ spanTrimPx: number; groupRules: boolean; continuedFootRule: TableContinuedFootRule; } /** * The strokes of a booktabs table laid out with its top at y = 0 (cells and * `rowEdges` in the table's frame, already mirrored for a table that runs * the other way): a heavy rule on the top edge, a light rule under the last * header row, a rule under every header cell spanning several columns above * that row, a light rule above each group-head body row (`groupRules`) and a * heavy rule under the last row — or the `continuedFootRule` when the table * (slice) goes on overleaf. A continuation slice repeats the header rows, so * it gets the top and header rules again. Strokes of zero width are left * out. * * `headerRowCount` is the model's (`tableHeaderRowCount`): its rows are * the first ones of every slice. */ export declare function booktabsStrokes(table: Pick, headerRowCount: number, spec: BooktabsRuleSpec, continues: boolean): VDTTableStroke[]; //# sourceMappingURL=booktabs.d.ts.map