/** * Parses acceptance criteria from issue markdown and verifier checklists. * * An issue's acceptance criteria live in its markdown as a checkbox list under * the "## Acceptance criteria" heading. A verifier step is instructed to emit * its per-criterion results as a similar checklist (optionally after a * "CRITERIA:" marker), citing evidence for each. * * Pure (no I/O) so it is unit-tested directly. */ export interface AcceptanceCriterion { id?: string; text: string; checked: boolean; } export interface AcceptanceParseIssue { kind: "duplicate-id"; line: number; text: string; id: string; } export interface AcceptanceSectionParseResult { criteria: AcceptanceCriterion[]; sectionPresent: boolean; issues: AcceptanceParseIssue[]; } export declare function parseAcceptanceCriteria(markdown: string): AcceptanceCriterion[]; /** * Like parseAcceptanceCriteria, but also reports whether an "## Acceptance * criteria" heading was PRESENT at all. The done-gate needs this to tell a * trivial ticket (no section → weak gate) apart from a malformed one (section * present but zero parsed criteria → needs-human). */ export declare function parseAcceptanceSection(markdown: string): AcceptanceSectionParseResult; export declare function markAllCriteriaChecked(markdown: string): string; export declare function parseCriteriaChecklist(text: string): AcceptanceCriterion[];