import type { Block } from './block.js'; /** The marker family a list level uses in the source document. */ export type MarkerKind = 'bullet' | 'decimal' | 'lowerAlpha' | 'upperAlpha' | 'lowerRoman' | 'upperRoman'; export declare function markerIsOrdered(kind: MarkerKind): boolean; /** * The marker text for ordinal `n` (1-based), without trailing space: * `3.`, `c.`, `iv.`; bullets have no ordinal text. */ export declare function markerLabel(kind: MarkerKind, n: number): string; /** The bare ordinal text for `n` without punctuation: `3`, `c`, `iv`. */ export declare function markerOrdinal(kind: MarkerKind, n: number): string; /** * A fully resolved list: numbering identity and marker resolution happen in * the frontends, which split runs whenever the list instance or marker kind * changes. */ export interface List { marker: MarkerKind; /** Ordinal of the first item, from the source's own numbering. */ start: number; items: ListItem[]; } export declare function listIsOrdered(list: List): boolean; /** One item of a list, which may hold nested blocks including further lists. */ export interface ListItem { blocks: Block[]; /** Checkbox state; `undefined` when the item carries no checkbox. */ checked: boolean | undefined; /** * Literal marker text that overrides the level marker when the source * number text cannot be reproduced from marker + position alone. */ markerLabel: string | undefined; } export declare function emptyListItem(): ListItem;