/**
 * Deterministic canonical JSON serializer for Ed25519 signing/verification.
 *
 * Why purpose-built and not RFC 8785 (JCS) or a vendored canonicalize lib:
 * the entitlement payload schema is tightly controlled — flat object, primitives
 * plus one string array (purchasedPlugins). A 30-line implementation covers it
 * exactly and stays zero-dep, which matters because the create-maxy bundle
 * has a hardcoded externalDeps surface that any new runtime dep must thread.
 *
 * Rules:
 *   - object keys sorted lexicographically (Array.prototype.sort default)
 *   - no whitespace
 *   - strings JSON.stringify-escaped (handles unicode, quotes, backslashes)
 *   - numbers in finite IEEE 754; reject NaN / Infinity / -0
 *   - booleans + null verbatim
 *   - arrays preserve element order (signing party owns array semantics)
 *   - throws on unsupported value types (functions, undefined, symbols, bigint)
 *
 * Both sides (Rubytech signer + customer verifier) call canonicalize() before
 * signing/verifying. Canonical bytes are UTF-8 of the returned string.
 */
export type CanonicalValue = string | number | boolean | null | CanonicalValue[] | {
    [k: string]: CanonicalValue;
};
export declare function canonicalize(value: CanonicalValue): string;
//# sourceMappingURL=canonicalize.d.ts.map