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