import type { Finding, FindingPath } from "../schema/findings.js"; import { type WorkspecValidationContext } from "../schema/index.js"; import type { CriterionAmendment } from "../schema/workspec.js"; export interface CriterionAmendmentRequest { criterionId: string; before: string; after: string; reason: string; authority: string; at: string; } export type CriterionAmendmentContext = WorkspecValidationContext; export type CriterionAmendmentFailureCode = "invalid-request" | "invalid-spec" | "criterion-not-found" | "criterion-before-mismatch" | "criterion-amendment-noop" | "serialization-invalid"; export interface CriterionAmendmentFailure { ok: false; code: CriterionAmendmentFailureCode; message: string; findings: Finding[]; } export interface CriterionAmendmentSuccess { ok: true; specSource: string; path: FindingPath; amendment: CriterionAmendment; } export type CriterionAmendmentResult = CriterionAmendmentFailure | CriterionAmendmentSuccess; /** Apply exactly one append-only criterion amendment to a currently valid workspec. */ export declare function amendCriterion(source: string, request: CriterionAmendmentRequest, context?: CriterionAmendmentContext): CriterionAmendmentResult;