/**
 * Shared JSON primitive used by public eve APIs that need to declare
 * author-supplied values as JSON-serializable.
 *
 * The canonical use site is {@link AuthorizationDefinition}, whose
 * `State` type is constrained to {@link JsonValue} so that state
 * journaled by WDK between `startAuthorization` and
 * `completeAuthorization` is guaranteed round-trippable through a
 * serializer. Kept in a dedicated module so any future public
 * interface with the same serialization requirement can reuse it
 * without depending on a connection-specific module.
 */
/**
 * Recursive type describing any JSON-serializable value.
 *
 * Accepted: `string`, `number`, `boolean`, `null`, arrays of
 * {@link JsonValue}, and objects whose string keys map to
 * {@link JsonValue}. All containers are marked `readonly` so authored
 * code treats the value as immutable at the type level.
 *
 * Rejected (at compile time): `undefined`, functions, `Date`, class
 * instances, `Map`, `Set`, `bigint`, and symbols. These cannot survive
 * a `JSON.stringify(...)` / `JSON.parse(...)` round trip and must not
 * cross a durable step boundary.
 */
export type JsonValue = string | number | boolean | null | readonly JsonValue[] | {
    readonly [key: string]: JsonValue;
};
