import { AbstractNumbering, Numbering, NumberingInstance, NumberingLevel, NumberingReference } from '../document-model/index.js'; /** * §17.9.27 — the levels an INSTANCE actually numbers by: its abstract * definition's, with any `w:lvlOverride/w:lvl` shadowing them. Cached per * instance, since every list paragraph asks for it. * * @param numbering The parsed numbering definitions. * @param instance The `w:num` the paragraph refers to. * @returns The effective abstract numbering, or `undefined` when the instance * names one that is not there. */ export declare function effectiveAbstract(numbering: Numbering, instance: NumberingInstance): AbstractNumbering | undefined; /** * Mutable list-counter state for one numbering scope (e.g. a body or a single * header/footer band). Tracks a counter per list per level and advances them as * paragraphs are visited in order. */ export declare class NumberingState { private readonly counters; private readonly restarted; /** * Advance the counter for `ref` (resetting deeper levels) and format its * marker text. The first hit at a level seeds it from the level's `start`; * subsequent hits increment. * * @param numbering The parsed numbering definitions. * @param ref The paragraph's `numId` + `ilvl` reference. * @returns The formatted marker (e.g. `"2."`, `"•"`), or `null` when the * reference does not resolve to a known list level. */ resolveMarker(numbering: Numbering, ref: NumberingReference): string | null; } export declare function formatLevelMarker(abstractNum: AbstractNumbering, currentLevel: NumberingLevel, counters: ReadonlyArray): string;