/** * Ruled frames (#914): `FrameConfig.rules` draws one rule at the foot of * each line slot of a frame's content box, as many as its height holds, so * an answer space follows its frame: an `'auto'` frame given * `:::space{lines=4}` gets four rules, one that grows gets more. * * A frame that holds a box (content, or a style) carries its rules on the * box's decoration (`VDTBlock.designOverlay`), over its background and * under its text, in the box's laid-out coordinates (a frame whose text the * ladder scales is laid out `1 / scale` as large: the rules keep their * drawn pitch and thickness). An empty frame carries them on * `VDTFrame.rules` in page coordinates; the template's decoration paints * them (`headerFooter.ts`). */ import type { ResolvedCalloutStyleConfig } from '../types.js'; import type { VDTDesignRuleBlock } from '../vdt.js'; import type { Rect } from './geometry.js'; import type { FrameRulesConfig } from './types.js'; /** The rules' colour when the frame sets none. */ export declare const DEFAULT_RULE_COLOR = "#9a9a9a"; /** The leading of a frame's text: its style's body (px). */ export declare function frameLinePx(style: ResolvedCalloutStyleConfig, dpi: number): number; /** * The rules across `inner` (a content box): one at the foot of each slot * of the pitch, as many as fit, each `inset` short of both sides. Lengths * the frame writes are divided by `scale` (the box is laid out that much * larger and painted at `scale`); the `'line'` pitch is the text's own, * `linePx`, which scales with it. */ export declare function frameRuleBlocks(rules: FrameRulesConfig, inner: Rect, linePx: number, scale: number, dpi: number, emPx: number): VDTDesignRuleBlock[]; //# sourceMappingURL=rules.d.ts.map