export declare const SPEC_COMPONENTS: readonly ["Context", "Problem", "Goals & Requirements", "Alternatives", "Technical Design", "Testing Plan", "Risks & Mitigations", "User Stories & Tasks"]; export type SpecComponent = typeof SPEC_COMPONENTS[number]; export declare function resolveComponents(components: readonly SpecComponent[] | undefined): SpecComponent[]; /** * One component catalog entry: the stable wire identifier plus a neutral display label * suitable for a spec that does not assume a software deliverable. `id` is byte-identical * to one `SPEC_COMPONENTS` entry and drives `resolveComponents()`; `displayLabel` is what * a newly authored spec heading shows. */ export interface SpecComponentCatalogEntry { id: SpecComponent; displayLabel: string; } export declare const SPEC_COMPONENT_CATALOG: readonly SpecComponentCatalogEntry[]; /** * Dual-read resolver: maps either a CURRENT display label (e.g. `'Approach, Method & * Structure'`) or a HISTORICAL heading (the stable identifier itself, e.g. * `'Technical Design'`) back to the stable `SpecComponent` identifier. A spec file * written before the display-label change still parses, because its heading text is the * identifier, and a spec file written after the change parses too, because its heading * text is the display label. Returns `undefined` when `heading` matches neither. */ export declare function resolveComponentHeading(heading: string): SpecComponent | undefined; //# sourceMappingURL=spec-components.d.ts.map