import type { FormatEntity } from './types.js';
export interface MarkdownLineState {
    /** One-based physical line number. */
    lineNumber: number;
    text: string;
    /** True for opening/closing markers and every line between them. */
    fenced: boolean;
}
/**
 * Classify Markdown lines with the extractor's fence semantics.
 *
 * Keeping this as the single fence-state implementation matters beyond heading
 * extraction: consumers that inspect prose must not rediscover identifiers from
 * examples the entity model deliberately ignored.
 */
export declare function scanMarkdownLines(content: string): MarkdownLineState[];
/**
 * Markdown and MDX heading sections.
 *
 * Fenced code blocks are tracked, so a shell comment inside a fence is not
 * mistaken for a heading — a `# install` line inside a ```bash block is
 * extremely common in a README, and treating it as a section produces an entity
 * that appears and disappears as the example is edited.
 */
export declare function extractMarkdownEntities(content: string): FormatEntity[];
