/** * Envelope payload hash — pinned in its own leaf module so consumers * (DictionaryHandle, the active history strategy) can import it * without dragging in the `LedgerStore` class. * * see `constants.ts` for the broader rationale. * * @internal */ import type { EncryptedEnvelope } from '../../../kernel/types.js'; /** * Compute the `payloadHash` value for an encrypted envelope. Used by * `LedgerStore.append` for both put (hash the new envelope) and * delete (hash the previous envelope) paths, and by * `DictionaryHandle` so its ledger entries match the same contract. * * Hashes the open `_data` ciphertext, plus the sealed-field ciphertext * map (`_sealed`) when a record carries one — so the ledger attests to * both the open body AND every sealed value … and the verify-digest * ciphertext map (`_vdig`), each bound only when present — the `_vdig` * binding is the temporal-rollback detector for the C1 splice class. * `rotateRecordCek` rewrites `_vdig` with no ledger entry, the same * pre-existing rotation property `_sealed`/`_cek` already have * (`verifyBackupIntegrity` flags rotated records until re-anchored). * * Returns the empty string when there is no envelope (delete of a * never-existed record). The empty string tolerated by the ledger * entry's `payloadHash` field as the canonical "nothing here" value. */ export declare function envelopePayloadHash(envelope: EncryptedEnvelope | null): Promise;