import type { RotatableDIDDocument } from '../../types/passport.js'; import { type CpaVerifyResult } from './types.js'; /** * Receipt carried for mutual binding. If `action_ref` is present, the CPA's * action_ref must match it (CPA -> action direction). If `cpa_ref` is * present, computeCpaRef(cpa) must equal it (receipt -> CPA direction). A * receipt may carry either, both, or neither; absent fields are not checked. */ export interface CpaReceipt { action_ref?: string; cpa_ref?: string; } export interface CpaVerifyOptions { /** Reserved: clock reference. Not consulted by the current checks. */ now?: Date; /** * Disclosure-policy selector. When true, the disclosed evidence MUST * include leaf content: the CPA must disclose at least one leaf, and * EVERY disclosed leaf (across all partitions) must carry a `content` * field. A CPA that discloses no leaves at all, or any disclosed leaf * that lacks `content`, fails with DISCLOSURE_POLICY_UNSATISFIED. This * is the "existence-only disclosure under a content-requiring policy" * rejection. Default (undefined/false) imposes no content requirement; * count-only and content-bearing disclosures both pass. */ requireContent?: boolean; } /** * Verify a CPA against a DID document. Offline, fail-closed. * * @param cpa the signed CPA (untrusted input; shape is checked). * @param didDoc the producer's rotation-capable DID document. * @param receipt OPTIONAL receipt for Phase 1 mutual binding (unused in Phase 0). * @param opts OPTIONAL verifier options (unused in Phase 0 core). */ export declare function verifyCPA(cpa: unknown, didDoc: RotatableDIDDocument, receipt?: CpaReceipt, opts?: CpaVerifyOptions): CpaVerifyResult; //# sourceMappingURL=verify.d.ts.map