/** * Durable Mission Graph — typed contracts & producer/consumer linking (2.0.0). * * Contracts are typed bindings between a producer objective and a consumer * objective. Compatibility is verified by comparing contract revisions and * schema digests; stale producer revisions are detected and block the consumer. */ import type { MissionContract, MissionOperationResult } from "./types.js"; export interface ProducerContractRoot { id: string; revision: number; schema: string; /** The last revision actually produced/satisfied by the producer. */ producedRevision?: number; /** SHA-256 of the current producer schema definition. */ producedSchemaDigest?: string; } export interface ConsumerContractRequirement { contractId: string; requiredRevision: number; requiredSchema?: string; } export interface CompatibilityCheck { compatible: boolean; reasons: string[]; } /** * Verify that a producer's produced output satisfies a consumer's required * contract revision. A mismatch in revision or schema digest marks the * producer output stale for that consumer. */ export declare function verifyContractCompatibility(producer: ProducerContractRoot, consumer: ConsumerContractRequirement): CompatibilityCheck; /** * Detect whether a mission's consumer-side contract requirement is stale * relative to the producer's current revision. */ export declare function isContractStale(producer: ProducerContractRoot, consumer: ConsumerContractRequirement): boolean; /** * Link a typed contract from the mission contract registry to a producer root * and a consumer requirement. Validates that both roles reference the same * contract id and that consumer/producer reference known objectives elsewhere. */ export declare function linkProducerConsumer(contract: MissionContract, producer: ProducerContractRoot, consumer: ConsumerContractRequirement): MissionOperationResult<{ contractId: string; compatible: boolean; }>; //# sourceMappingURL=contract.d.ts.map