export type ObservedStatus = "verified" | "failed" | "skipped" | "unverified" | "partial"; export interface ObservedOutcome { readonly actionId: string; readonly intendedOutcome: string; readonly observedOutcome: string; readonly status: ObservedStatus; readonly evidenceRefs: readonly string[]; readonly error?: string; readonly changedState?: readonly string[]; } export interface CompletionContract { readonly requiredDeliverables: readonly string[]; readonly requiredVerification: readonly string[]; readonly explicitRestrictions?: readonly string[]; /** Distinguishes proving the requested task from proving repository health. */ readonly confidenceScope?: "task" | "repository"; readonly verificationLevel?: "V0" | "V1" | "V2" | "V3" | "V4"; } export interface CompletionState { readonly deliverables: ReadonlySet; readonly verification: ReadonlySet; readonly outcomes: readonly ObservedOutcome[]; readonly openRequiredTasks?: readonly string[]; readonly unresolvedRestrictions?: readonly string[]; readonly integrationStateClean?: boolean; } export declare function canComplete(contract: CompletionContract, state: CompletionState): boolean; export interface VerificationCheck { readonly id: string; readonly command?: string; readonly reason: string; } export interface VerificationPlan { readonly level: "V0" | "V1" | "V2" | "V3" | "V4"; readonly claims: readonly string[]; readonly selectedChecks: readonly VerificationCheck[]; readonly escalationTriggers: readonly string[]; readonly completedEvidence: readonly string[]; } export declare function createVerificationPlan(input: Omit): VerificationPlan; export declare function isVerificationSufficient(plan: VerificationPlan, completedEvidence: readonly string[]): boolean; //# sourceMappingURL=completion-policy.d.ts.map