export type Primitive = | undefined | null | boolean | string | number | bigint | symbol; export interface Dict { [K: string]: T; } export type Constructor = new (...args: any[]) => T; export interface PlainObject { [key: string]: unknown; } export type JSONValue = Primitive | JSONObject | JSONValue[]; export interface JSONObject { [key: string]: JSONValue; }