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"),
 * and clause-internal-cut tails where a verb/adjective follows a preposition
 * (e.g. "to prevent" → drop both, per mmnto-ai/totem#1872).
 */
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