/** * @superdoc/engines-lists contract * * Formats list labels and computes hanging indents for multi-level numbering. * Extracted from PM list helpers and DOCX numbering utilities to ensure consistent * marker generation across PM and layout. */ export interface NumberingLevel { format: 'decimal' | 'lowerLetter' | 'upperLetter' | 'lowerRoman' | 'upperRoman' | 'bullet' | 'custom'; text: string; start: number; indent: { left: number; hanging: number; }; alignment?: 'left' | 'center' | 'right'; } /** * Format a list label from a numbering level definition. * * Handles template substitution (e.g., "%1." → "1."), numbering formats * (Arabic, Roman, alphabetic), and custom bullet characters. * * @param level - Numbering level definition * @param indices - Array of indices for each level (e.g., [1, 2] for "1.b") * @returns Formatted label text and estimated width in pt * * @example * formatListLabel( * { format: 'decimal', text: '%1.', start: 1, ... }, * [3] * ) // → { text: '3.', width: 12 } * * @example * formatListLabel( * { format: 'lowerLetter', text: '%1)', start: 1, ... }, * [2] * ) // → { text: 'b)', width: 10 } */ export declare function formatListLabel(level: NumberingLevel, indices: number[]): { text: string; width: number; }; /** * Compute hanging indent values for a list level. * * Returns the marker width, hanging indent (marker gutter), and first-line indent * based on the level's DOCX-derived indent metadata. * * @param level - Numbering level definition * @returns Indent values in pt */ export declare function computeListIndent(level: NumberingLevel): { labelWidth: number; hangingIndent: number; firstLineIndent: number; }; //# sourceMappingURL=lists.d.ts.map