export interface InteractionOutcome { toolName: string; requestHash: string; responseHash: string; status: 'success' | 'failure' | 'partial'; summary: string; /** Optional spend amount attributed to this interaction */ spend?: { amount: number; currency: string; }; } export interface BilateralReceipt { receiptId: string; version: '1.0'; requestingAgentId: string; servingAgentId: string; delegationId?: string; outcome: InteractionOutcome; requestedAt: string; completedAt: string; agreedAt: string; requestingAgentSignature: string; servingAgentSignature: string; gatewaySignature?: string; evidenceCommitments?: EvidenceCommitment[]; /** * Optional audience binding. When present, this receipt is bound to the named * recipient identifier(s); a verifier rejects it when presented to any other * recipient (see src/v2/audience-binding). Additive and versioned: a receipt * that OMITS this field signs and serializes byte-for-byte as before, so * existing receipts remain valid. Both co-signers sign over it when present. */ aud?: import('../v2/audience-binding/types.js').AudienceBinding; fieldDisclosureProfile?: unknown; } export interface EvidenceCommitment { type: string; credentialHash: string; issuerKid?: string; jwks?: string; pass?: boolean; committedAt: string; verificationSource?: import('../v2/verification-source/types.js').VerificationSource; } export type RevocationReason = 'key_rotation' | 'compromise' | 'decommission' | 'policy_violation' | 'manual'; export interface BilateralReceiptVerification { valid: boolean; requestingAgentSignatureValid: boolean; servingAgentSignatureValid: boolean; gatewaySignatureValid: boolean | null; outcomeConsistent: boolean; timingValid: boolean; errors: string[]; } export interface CompromiseWindowCheck { status: 'safe' | 'warn' | 'error'; reason: string; proofTimestamp: string; revokedAt: string; compromisedSince?: string; } //# sourceMappingURL=bilateral-receipt.d.ts.map