export type JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue; }; export interface FetchRequest { url: string; payload: JsonValue; timeout?: number; headers?: Record; } export interface IJsonThreader { readonly stats: { pending: number; queued: number; available: number; total: number; processed: number; failed: number; }; parse(json: string): Promise; parseBuffer(buffer: ArrayBuffer): Promise; stringify(data: JsonValue): Promise; fetch(request: FetchRequest): Promise; terminate(): Promise; }