export declare const EVENT_V3_CANONICALIZER: "harnery-jcs-nfc-v1"; export type JsonPrimitive = null | boolean | number | string; export type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue; }; /** * Canonical JSON used for V3 contract digests, event bytes, and fingerprints. * * It follows RFC 8785's ECMAScript number and string serialization, adds the * V3 NFC rule for keys and values, and rejects values that JSON would silently * erase or reinterpret. Object keys are serialized directly instead of via an * intermediate object so integer-looking keys remain in lexical order. */ export declare function canonicalJsonV3(value: unknown): string; export declare function sha256V3(value: string | Uint8Array): `sha256:${string}`; export interface FingerprintV3 { algorithm: "hmac-sha256"; canonicalizer: typeof EVENT_V3_CANONICALIZER; key_epoch: `pep_${string}`; scope: "generation" | "root"; digest: `sha256:${string}`; } export interface FingerprintContextV3 { epochId: `pep_${string}`; epochKey: Uint8Array; rootId: `root_${string}`; generationId?: `gen_${string}`; } export declare function fingerprintV3(context: FingerprintContextV3, domain: string, value: unknown, scope?: "generation" | "root"): FingerprintV3; export declare function normalizeNativeIdV3(context: FingerprintContextV3, namespace: string, nativeId: string): `hid_${string}`; //# sourceMappingURL=canonical.d.ts.map