/**
 * Deterministic content hashing for run artifacts (mmnto-ai/totem#2100).
 *
 * Node's `JSON.stringify` preserves key insertion order, so two logically
 * identical payloads assembled in different orders would hash differently —
 * breaking content-addressing and the identical-run dedup guarantee. This
 * module canonicalizes (recursive key sort) BEFORE hashing so the content
 * address is a pure function of the logical payload.
 *
 * Array order is deliberately significant — a reordered array is a different
 * payload, not a different spelling of the same one.
 *
 * Scope: plain JSON data only (the artifact is Zod-validated JSON). Cyclic
 * structures throw via `JSON.stringify` — an artifact can never be cyclic, so
 * a cycle here is a caller bug, not an input class to tolerate.
 */
/**
 * sha256 hex (full 64 chars) of the canonical (recursively key-sorted) JSON
 * serialization of `payload`. The full digest — not a truncation — because
 * the hash IS the artifact's filename / identity and must not invite
 * collision shortcuts (contrast `hashManagedBlock`'s display-only 12 chars).
 */
export declare function calculateDeterministicHash(payload: unknown): string;
//# sourceMappingURL=hash.d.ts.map