/** * `:::columns` in the running text (#634). A group outside a box sets its * blocks in N sub-columns of the text column (`span="column"`, the * default) or across the page (`span="page"`, a band of a multi-column * page, cut as a page-span box cuts it). The build wraps each such group * in a frameless box (a synthetic `:::callout` with one of the * {@link FLOW_COLUMNS_STYLE_ID} styles), so the callout machinery places * it, cuts it between its sub-columns when it does not fit (the group's * `flow`, see `columnsGroup.ts`) and, across the page, cuts the band. The * box has no frame, padding, title or icon; it never stays whole, and its * children are set in the text's own typography (`isFlowColumnsStyle`: * the box lends them no body or list style). */ import type { ContentBlock } from '../parse/index.js'; import type { CalloutStyleConfig, Dimension } from '../types.js'; /** Style ids of the frameless boxes of main-flow groups, in the text * column and across the page. Not user styles: no configuration can * name them. */ export declare const FLOW_COLUMNS_STYLE_ID = "__postext-flow-columns"; export declare const FLOW_COLUMNS_PAGE_STYLE_ID = "__postext-flow-columns-page"; /** Whether a callout style is a main-flow group's box. */ export declare function isFlowColumnsStyle(id: string): boolean; /** The two boxes: in the column, the sub-columns `columnGapPx` apart (a * body line by default); across the page, `pageGapPx` (the gutter). The * space below is the body's paragraph spacing, unless the group's fence * sets its own (`marginTop`, `marginBottom`, #714); a cut between children * keeps `splitMinLines` lines of text on each side (the body's orphan and * widow minimums). */ export declare function flowColumnsStyles(columnGapPx: number, pageGapPx: number, marginBottom: Dimension, splitMinLines: number): CalloutStyleConfig[]; /** * `blocks` with every `:::columns` group outside a box wrapped in a * synthetic frameless box (see the module comment): a group with * `span="page"` in the page-wide one, any other in the column one. A * group inside a box keeps to it. `wrapped` tells whether any was: the * build then adds the boxes' styles to the callout styles. The same * blocks come back when none is wrapped. */ export declare function wrapFlowColumns(blocks: readonly ContentBlock[]): { blocks: ContentBlock[]; wrapped: boolean; }; //# sourceMappingURL=flowColumns.d.ts.map