/**
 * Convert an object to a canonical (deterministic) JSON string
 *
 * This function guarantees that the same logical object will always
 * produce the exact same string output, regardless of:
 * - The order in which keys were defined
 * - The JavaScript runtime or version
 * - How the object was constructed
 *
 * IMPORTANT: Use this for all cryptographic hash calculations
 * where consistency is required across different systems.
 *
 * @param obj - The object to serialize
 * @returns Deterministic JSON string with sorted keys
 *
 * @example
 * ```typescript
 * // These produce the same output
 * canonicalize({ b: 1, a: 2 }); // '{"a":2,"b":1}'
 * canonicalize({ a: 2, b: 1 }); // '{"a":2,"b":1}'
 *
 * // Nested objects are also sorted
 * canonicalize({ z: { y: 1, x: 2 }, a: 3 });
 * // '{"a":3,"z":{"x":2,"y":1}}'
 * ```
 */
export declare function canonicalize(obj: unknown): string;
/**
 * Compare two objects for canonical equality
 *
 * Two objects are canonically equal if their canonical JSON
 * representations are identical.
 *
 * @param a - First object to compare
 * @param b - Second object to compare
 * @returns true if objects are canonically equal
 */
export declare function canonicalEquals(a: unknown, b: unknown): boolean;
/**
 * Compute a hash-ready string from an object
 *
 * This is a convenience function that combines canonicalization
 * with encoding preparation for hash functions.
 *
 * @param obj - The object to prepare for hashing
 * @returns UTF-8 encoded canonical JSON as Uint8Array
 */
export declare function canonicalizeForHash(obj: unknown): Uint8Array;
//# sourceMappingURL=canonical-json.d.ts.map