export declare const HEADING_MAX_CHARS = 60; /** * Truncate a heading string to HEADING_MAX_CHARS at a word boundary. * Strips trailing ellipsis/periods added by LLMs before enforcing the limit. * Also trims dangling prepositions/articles/conjunctions that leave the * heading feeling incomplete (e.g. "must be tested against the" → "must be tested"), * clause-internal-cut tails where a verb/adjective follows a preposition * (e.g. "to prevent" → drop both, per mmnto-ai/totem#1872), and punctuation * the word-boundary cut leaves attached to the final word (e.g. * "…contamination class," → "…contamination class" — the strategy#1060 * GCA-mined exhibit). */ export declare function truncateHeading(heading: string): string; /** * Generate a descriptive lesson heading from the lesson body. * Strips markdown formatting, extracts the first sentence or line, * and truncates to HEADING_MAX_CHARS. */ export declare function generateLessonHeading(body: string): string; /** * Rewrite a lessons.md file content, cleaning up truncated headings. * Applies `truncateHeading()` to every `## Lesson — ...` heading, * trimming dangling prepositions/articles/conjunctions. * Returns the number of headings that were modified. */ export declare function rewriteLessonHeadings(content: string): { output: string; rewritten: number; }; //# sourceMappingURL=lesson-format.d.ts.map