/** * The overlap checks of a composed page (#1053, DESIGN ยง12.10): what the * reflow ladder never sees, because no frame's content is short of its box. * * - `frameCovered`: ink of a frame (its lines, its tab and title, its * pictures) under a frame painted after it (a higher `layer`, or the same * layer later in template order, as `composedPaintOrder` paints them) * where that frame is opaque: its fill (the boxes of its overlay with a * background: the style's or `look`'s fill, a label tab, a stripe), its * pictures and its text. A frame with no fill covers nothing between its * pictures and lines; words cover words, not pictures (a line over a * picture hides a hairline of it). * - `frameOutsideArea`: ink of a frame past what holds it: its text past * the trim (cut there), its fill or pictures past the bleed (a fill may * bleed on purpose), or any of it past the frame or group it is anchored * inside (a nine-point anchor on `'#name'` whose point lies in that box). * * Pure: it reads the laid frames and their blocks, so it runs on the * composition the ladder settled on, before a spread is cut at its spine * (the facing copies do not exist yet). Every box is put on the sheet by * its frame's matrix (scale, turn) and compared as the box holding it. */ import type { ContentWarning, ReflowEvent, VDTBlock, VDTFrame } from '../vdt.js'; import { type FrameAreas, type Rect } from './geometry.js'; import type { ResolvedPageTemplate } from './types.js'; export interface OverlapCheckInput { /** The template laid (with the ladder's patches). */ template: ResolvedPageTemplate; /** The page's frames as laid, any order. */ frames: readonly VDTFrame[]; /** The page's frame blocks (each frame's box first). */ blocks: readonly VDTBlock[]; /** Groups' final boxes, by name. */ groupRects: ReadonlyMap; areas: FrameAreas; dpi: number; emPx: number; fenceIndex: number; pageIndex: number; locale?: string; /** The page lays its flow out right to left (`pageIsMirrored`): a * picture's shape turns in the frames' coordinates. */ mirrored?: boolean; /** The page's flow is vertical: pictures cover with their boxes. */ verticalFlow?: boolean; } export interface OverlapCheckResult { warnings: ContentWarning[]; /** `covered` and `outside` events of the reflow log. */ events: ReflowEvent[]; } /** * The overlap warnings of one composed page (or the sheet of a spread), * and the reflow log's events for them. */ export declare function overlapChecks(input: OverlapCheckInput): OverlapCheckResult; //# sourceMappingURL=overlap.d.ts.map