import type { ReceiptInclusionProof } from './receipt-ledger.js'; import type { EvidenceBundle, EvidenceBundleManifest, EvidenceBundleMember, EvidenceBundleVerification, ClaimBoundaryReport } from '../types/evidence-bundle.js'; /** * Digest of one member payload: lowercase hex SHA-256 of * canonicalize(payload). This is the leaf value committed in the * manifest and in the Merkle root. */ export declare function computeMemberDigest(payload: unknown): string; export interface CreateEvidenceBundleOptions { /** Member payloads to commit. member_id values must be unique. */ members: EvidenceBundleMember[]; /** Ed25519 private key (hex) that signs the manifest. */ signerPrivateKey: string; /** Ed25519 public key (hex) carried on the bundle for verification. */ signerPublicKey: string; /** ISO 8601 creation time. Defaults to now. */ createdAt?: string; } /** * Assemble and sign an evidence bundle per FREEZE-VWE F5. * Invariants: at least one member; unique member_id values; manifest * digests are canonicalize-then-sha256 of each payload; merkle_root is * buildMerkleRoot over the digests; signature covers * canonicalize(manifest minus signature). commitBatch is never * involved and no ledger-sequencing field is emitted. */ export declare function createEvidenceBundle(opts: CreateEvidenceBundleOptions): EvidenceBundle; /** * Merkle inclusion proof for one member digest against the bundle * root, produced by the receipt-ledger proveInclusion primitive. */ export declare function proveMemberInclusion(manifest: EvidenceBundleManifest, memberId: string): ReceiptInclusionProof; /** * Verify a member inclusion proof. Thin passthrough to the * receipt-ledger verifyInclusion primitive, exported so bundle * consumers never need to import the ledger module. */ export declare function verifyMemberInclusion(proof: ReceiptInclusionProof): boolean; /** * Verify an evidence bundle end to end: manifest signature over the * signable subset, Merkle root over the manifest digests, per-member * payload digest against the manifest, and per-member inclusion via * proveInclusion/verifyInclusion. Single-member manifests skip the * inclusion-proof check (the root is the domain-separated hash of the * single digest and generateMerkleProof has no sibling path to build); * the digest and root checks still bind the member. valid is true only * when every check passes. */ export declare function verifyEvidenceBundle(bundle: EvidenceBundle): EvidenceBundleVerification; export interface ClaimBoundaryReportOptions { /** Verification clock for revocation staleness. Defaults to now. */ now?: Date; /** Reuse an existing verifyEvidenceBundle result instead of recomputing. */ verification?: EvidenceBundleVerification; } /** * Compute the per-axis claim-boundary report for a bundle per the * SCHEMAS-DRAFT 3d mapping. Report-local vocabulary only (F6): the * result is never embedded in a signed artifact. Members are read * structurally by member_type (F7). Axes that cannot be computed from * the members present report MISSING or UNKNOWN. */ export declare function computeClaimBoundaryReport(bundle: EvidenceBundle, opts?: ClaimBoundaryReportOptions): ClaimBoundaryReport; //# sourceMappingURL=evidence-bundle.d.ts.map