/** * The one content-addressing kernel — `canonicalize → CanonicalCbor → fnv1a`. * * Identity is minted through the single canonical encoder (`CanonicalCbor`, * always-float64), never cborg (smallest-float) — the two diverge on * float16-exact values, which silently forked `QuantizerConfig`/`EntityId` ids * (CUT B1). Every content address in the repo (EntityId, BoundaryDef.id, * DocumentGraph node + graph ids) routes through here so they cannot diverge. * * @module */ import type { ContentAddress } from './brands.js'; /** * Recursively normalize a value for content addressing: drop `undefined` object * properties, map `undefined` array entries to `null`, and sort object keys so * authoring order never forks identity. Returns the canonical structure for * {@link CanonicalCbor.encode}. */ export declare function canonicalizeForAddress(value: unknown): unknown; /** * Canonical CBOR bytes for a value — the shared byte sequence both a fnv1a * identity ({@link contentAddressOf}) and a sha256 integrity digest * (`AddressedDigest.of`) derive from, so the two laws cannot disagree. */ export declare function canonicalAddressBytes(value: unknown): Uint8Array; /** * Mint a {@link ContentAddress} (fnv1a over canonical CBOR) — the one identity * kernel (CUT B1). The mint expression is written explicitly (not via * {@link canonicalAddressBytes}) so the canonical-identity source guard can see * that identity is paired with `CanonicalCbor`, never cborg / JSON. */ export declare function contentAddressOf(value: unknown): ContentAddress; //# sourceMappingURL=content-address.d.ts.map