import type { BilateralReceipt, BilateralReceiptVerification, InteractionOutcome, EvidenceCommitment, CompromiseWindowCheck, RevocationReason } from '../types/bilateral-receipt.js'; /** * Create a bilateral receipt. Called in two phases: * Phase 1: Requesting agent proposes the outcome and signs * Phase 2: Serving agent reviews, agrees, and countersigns * Phase 3 (optional): Gateway witnesses and adds third signature */ export declare function createBilateralReceipt(opts: { requestingAgentId: string; servingAgentId: string; delegationId?: string; outcome: InteractionOutcome; requestedAt: string; completedAt: string; requestingAgentPrivateKey: string; servingAgentPrivateKey: string; gatewayPrivateKey?: string; evidenceCommitments?: EvidenceCommitment[]; /** * Optional audience binding. When set, both co-signers sign over it and the * receipt is bound to the named recipient(s). When omitted, the canonical * body (and therefore both signatures) is byte-identical to a receipt without * audience binding, since canonicalize() omits undefined keys. */ aud?: import('../types/bilateral-receipt.js').BilateralReceipt['aud']; fieldDisclosureProfile?: unknown; }): BilateralReceipt; export declare function verifyBilateralReceipt(receipt: BilateralReceipt, requestingAgentPublicKey: string, servingAgentPublicKey: string, gatewayPublicKey?: string): BilateralReceiptVerification; /** * Create an evidence commitment from an external credential. * The credential (JWT, JWS, signed JSON) is hashed — not embedded. * Verifiers fetch the credential out-of-band and check hash match. */ export declare function createEvidenceCommitment(opts: { type: string; credential: string; issuerKid?: string; jwks?: string; pass?: boolean; verificationSource?: import('../v2/verification-source/types.js').VerificationSource; }): EvidenceCommitment; /** * Verify that a credential matches its commitment. */ export declare function verifyEvidenceCommitment(commitment: EvidenceCommitment, credential: string): boolean; /** * Check whether a proof timestamp falls within a compromise window. * * Three states: * 'safe' — proof predates compromise, likely unaffected * 'warn' — compromise window unknown, proof might be affected * 'error' — proof is definitely within the compromise window * * When revocationReason !== 'compromise', all pre-revocation * proofs are safe (key rotation, decommission, etc.). */ export declare function checkCompromiseWindow(opts: { proofTimestamp: string; revokedAt: string; revocationReason: RevocationReason; compromisedSince?: string; }): CompromiseWindowCheck; //# sourceMappingURL=bilateral-receipt.d.ts.map