export type AdrStatus = 'proposed' | 'accepted' | 'superseded' | 'deprecated' | 'rejected'; export declare const ADR_STATUSES: readonly AdrStatus[]; export interface AdrInput { projectId: string; title: string; context: string; decision: string; consequences: string; relatedIssues?: string[]; relatedEpics?: string[]; } export interface AdrOutput { id: string; path: string; } /** * Parse an ADR file into a uniform record, handling BOTH the new markdown shape * (frontmatter + ## Context/## Decision/## Consequences) AND legacy .yml ADRs. * Exported so tests and external readers can assert against the canonical * uniform shape rather than having to know which on-disk format produced the file. */ export declare function parseAdrContent(filename: string, content: string): Record; /** * Create a new project-level ADR */ export declare function createProjectAdr(input: AdrInput): Promise; /** * List ADRs for a project (ID + title + status) */ export interface AdrSummary { id: string; title: string; status: string; filename: string; } /** * Every ADR in the project, plus a count of the ones that could not be read. * * The count is the return value's reason for being an object. A decision * record that does not parse is a decision the caller is about to be told was * never made — and "we have no ADR about that" is precisely the answer someone * acts on by making the choice again, differently. */ export declare function listProjectAdrs(projectId: string): Promise<{ adrs: AdrSummary[]; unreadable_count: number; }>; /** * Read a single ADR by ID (e.g., "ADR-0005") or partial match */ export declare function readProjectAdr(projectId: string, adrId: string): Promise | null>; export interface UpdateAdrResult { id: string; status: AdrStatus; previous_status: string; superseded_by?: string; /** False when the ADR already had this status (and superseded_by). */ updated: boolean; } export declare class AdrUpdateError extends Error { } export declare function updateProjectAdrStatus(projectId: string, adrId: string, status: string, supersededBy?: string, now?: () => Date): Promise; //# sourceMappingURL=architectAdrs.d.ts.map