export interface DocumentParsedIssue { id: string; title: string; body: string; parent: string | null; children: string[]; /** Absent for the umbrella issue (mirrors fileToRecord's loose-mode "whole file, no span"). */ lineStart?: number; lineEnd?: number; /** ZTB-4 dev/09 (additive — read path, src/documentParser.test.ts, is unchanged by these two * fields): the heading's level, and the section's raw text (heading + full subtree) BEFORE any * id-bearing-descendant excision — i.e. `doc.sections[index].raw`. `raw === body` iff nothing * was excised (the common case); DocumentSource.write uses that equality as its span-writable * gate. Both absent for the umbrella issue (no single section backs it). */ level?: number; raw?: string; /** UMBRELLA ONLY (ZTB-4 dev/10): the `Status:`/`Assignee:` lines of the file's `Title:` header * block, exactly as fileToRecord (src/check.ts) would read them. Regular items carry their own * `status:`/`assignee:` header block INSIDE their section instead (decomposed by * documentWriteBack.ts, not here), so these stay unset for them — one source of truth each. */ status?: string; assignee?: string; } /** Parse one document source's text into its issue tree. `filePath` is used only for the * umbrella issue's id (mirrors `fileToRecord`'s `basename(path).replace(/\.[^.]+$/, '')`). */ export declare function parseMarkdownDocumentSource(text: string, filePath: string): DocumentParsedIssue[];