/** * Content warnings of composed pages (#854, DESIGN §3.2, §5.7): a page * fence naming no template, a slot the template lacks, a template frame * that receives nothing, a fence and a template that disagree about * spreads (#861). Pure: read from the parsed pages and the * configuration, before any layout. */ import type { ContentWarning } from '../vdt.js'; import type { ContentBlock } from '../parse/types.js'; import { type ParsedComposedPage } from './document.js'; import type { ComposedPagesConfigKeys } from './types.js'; /** The composed-page warnings, as {@link checkComposedSlots} returns them * (source offsets as in the pages it read). */ export type ComposedSlotWarning = Extract; /** * `templateUnknown`, `slotUnknown` and `slotEmpty` for each page: * * - `templateUnknown`: `template="…"` names no `pageTemplates` id (or the * fence names none). The page's slots are not checked. * - `slotUnknown`: content names a slot that is no frame of the template; * it goes to the flow frame. Points at the first `slot="…"` value. * - `slotEmpty`: a frame receives nothing (no slot names it, it `takes` no * heading of the page, and, for the flow frame, no content is left * without a slot). Not raised for an `optional` frame, nor for a frame * other frames continue into (`next`, `overflow.continueIn: '#x'`), * which fills only when they overflow, nor for the frame of a later page * that a story jumps to (`overflow.continueIn: 'page:'`, #917). * - `spreadMismatch`: the fence's `spread` flag and the template's `spread` * (inherited through `extends`) differ. The template decides: a spread * template is laid over two facing pages, any other on one page. Points * at the `spread` attribute, else the `template` value. */ export declare function checkComposedSlots(pages: readonly ParsedComposedPage[], config: Pick | undefined): ComposedSlotWarning[]; /** * `lookUnknown` (#1089): each `:::frame` piece of a composed page whose * `look="…"` names no `frameLooks` entry (an empty value names none), at * the attribute's value, with the nearest id. `blocks` is the parsed * stream (source offsets as there). */ export declare function checkFrameLookNames(blocks: readonly ContentBlock[], config: Pick | undefined): Extract[]; //# sourceMappingURL=slotChecks.d.ts.map