import type { BoundaryClaim, BoundaryVerificationResult, CollusionEvent, AgentIdentity } from './types.js'; export declare class CollusionDetector { private events; /** * Check a verification result for collusion signals. * * Collusion is detected when: * 1. Two LLM-backed agents agreed on a claim (Code + Review both say PASS) * 2. The formal verifier disagrees (says FAIL) * * This catches the most dangerous failure mode: correlated LLM errors * where agents trained on similar data share the same blind spots. */ check(sourceAgent: AgentIdentity, targetAgent: AgentIdentity, claims: readonly BoundaryClaim[], result: BoundaryVerificationResult): CollusionEvent[]; /** * Check if the collusion rate exceeds a threshold for a given agent pair. * Returns true if the ratio of collusion events to total verifications * exceeds the threshold (default: 20%). */ isCollusionRateExcessive(agentA: string, agentB: string, totalVerifications: number, threshold?: number): boolean; /** Get all collusion events. */ getAllEvents(): readonly CollusionEvent[]; /** Get collusion events for a specific agent. */ getEventsForAgent(agentId: string): readonly CollusionEvent[]; /** Get critical collusion events (security/data-loss claims). */ getCriticalEvents(): readonly CollusionEvent[]; /** Get collusion event count. */ getEventCount(): number; /** Get unique agent pairs involved in collusion. */ getColludingPairs(): Array<{ agentA: string; agentB: string; count: number; }>; }