import { type ApplicationUnderstanding, type ObservedEvidenceInput } from './application-understanding.js'; import type { FeltDBContractSnapshot } from './application-development.js'; import type { FeltDBProposalRecord } from './proposal.js'; export type ConvergenceFindingStatus = 'satisfied' | 'missing' | 'partial' | 'contradictory' | 'stale' | 'unverified' | 'unexpected'; export type ConvergenceStatus = 'pending' | 'checking' | 'converged' | 'partially_converged' | 'diverged' | 'blocked' | 'unverified'; export type ConvergenceSurface = 'contract' | 'flow' | 'schema' | 'relationship' | 'policy' | 'workflow' | 'capability' | 'module' | 'source' | 'test' | 'build' | 'runtime'; export interface ConvergenceFinding { claim: string; surface: ConvergenceSurface; status: ConvergenceFindingStatus; expected?: unknown; observed?: unknown; confidence: number; evidence: string[]; missing?: string[]; reason: string; } export interface SourcePlanObservation { path: string; status: 'implemented' | 'modified' | 'missing' | 'conflicted' | 'unexpected'; evidence?: string[]; } export interface VerificationObservation { surface: 'test' | 'build' | 'runtime'; claim: string; status: 'satisfied' | 'partial' | 'missing' | 'unverified'; evidence?: string[]; } export interface ConvergenceResult { id?: string; proposal_id: string; application_id: string; environment: string; contract_hash: string; flow_hash: string; evidence_hash: string; status: ConvergenceStatus; findings: ConvergenceFinding[]; confidence: number; created_at: string; verifier_version: 1; updated_understanding: ApplicationUnderstanding; } /** Verifies semantic satisfaction. Source layout is supporting evidence, never the primary convergence boundary. */ export declare function verifyProposalConvergence(input: { proposal: FeltDBProposalRecord; currentFlow: string; snapshot: FeltDBContractSnapshot; source?: SourcePlanObservation[]; verification?: VerificationObservation[]; observations?: ObservedEvidenceInput[]; now?: string; }): Promise; export declare function renderConvergenceDiagnostic(result: ConvergenceResult): string[]; //# sourceMappingURL=convergence.d.ts.map