/** An individual witness attestation — one oracle's signed claim about an observation */ export interface WitnessAttestation { witnessId: string; /** Ed25519 public key of the attesting oracle */ publicKey: string; /** What provider/platform runs this oracle (e.g., "anthropic", "openai", "google") */ provider: string; /** Model family (e.g., "claude", "gpt", "gemini") */ modelFamily: string; /** The observation being attested to */ observation: string; /** Confidence score 0-1 */ confidence: number; /** Ed25519 signature over canonical(witnessId + observation + confidence + timestamp) */ signature: string; timestamp: string; } /** A pool of witnesses for a specific observation context */ export interface WitnessPool { poolId: string; /** The question or observation context */ context: string; /** Required minimum number of attestations */ quorum: number; /** Required minimum diversity score (0-1) */ minDiversityScore: number; /** Collected attestations */ attestations: WitnessAttestation[]; createdAt: string; closedAt?: string; status: 'collecting' | 'quorum_met' | 'consensus_reached' | 'failed'; } /** Diversity score breakdown */ export interface DiversityScore { /** Overall diversity 0-1 */ overall: number; /** Number of distinct providers */ providerCount: number; /** Number of distinct model families */ modelFamilyCount: number; /** Number of distinct witness identities */ witnessCount: number; /** Provider entropy (Shannon entropy over provider distribution) */ providerEntropy: number; /** Whether a single provider has >50% of attestations */ singleProviderDominant: boolean; } /** Result of evaluating consensus across attestations in a pool */ export interface WitnessConsensusResult { /** Whether consensus was reached */ reached: boolean; /** The consensus observation (majority answer), or null if no consensus */ consensusObservation: string | null; /** How many attestations agree with the consensus observation */ agreementCount: number; /** Total attestations evaluated */ totalCount: number; /** Agreement ratio (agreementCount / totalCount) */ agreementRatio: number; /** Weighted confidence of agreeing attestations */ weightedConfidence: number; /** Diversity score of the agreeing witnesses */ diversityScore: DiversityScore; /** Reason if consensus was not reached */ failureReason?: 'below_quorum' | 'no_majority' | 'low_diversity' | 'low_confidence'; } /** Configuration for creating a witness pool */ export interface WitnessPoolConfig { context: string; quorum?: number; minDiversityScore?: number; /** Minimum agreement ratio for consensus (default: 0.66) */ minAgreementRatio?: number; /** Minimum weighted confidence for consensus (default: 0.6) */ minWeightedConfidence?: number; } //# sourceMappingURL=oracle-witness.d.ts.map