export type Json = boolean | number | string | null | JsonArray | JsonMap; export interface JsonMap { [key: string]: Json; } export interface JsonArray extends Array {} export type JsonSerializable = { toJSON(): JsonLike }; export type JsonLike = boolean | number | string | null | JsonSerializable | Array | { [P in any]: JsonLike };