/** * Type safe JSON */ export declare type Json = string | number | boolean | null | undefined | JsonObject | JsonArray | IJsonSerializable; /** * Type safe JSON object */ export declare type JsonObject = { readonly [index: string]: Json; }; /** * Type safe JSON array */ export interface JsonArray extends ReadonlyArray { } /** * Convertible into a JSON string. */ export interface IJsonSerializable { /** * @param key If this object is a property value, the property name, if it is in an array, the index in the array, as a string, otherwise an empty string. */ toJSON(key?: string | number): Json; } export declare type Reviver = (this: T, key: string, value: any) => any; export declare type Replacer = (this: T, key: string, value: any) => any;