import type { FetchRequest, IJsonThreader, JsonValue } from './interfaces/IJsonThreader.js';
import { ThreaderOptions, WorkerScript } from './interfaces/IThread.js';
import { BaseThreader } from './SharedThreader.js';
export type { JsonValue, FetchRequest, IJsonThreader };
type JsonOp = 'parse' | 'stringify' | 'fetch';
type JsonInput = string | JsonValue | ArrayBuffer | FetchRequest;
type JsonOutput = string | JsonValue;
export declare class JsonThreader extends BaseThreader<JsonOp, JsonInput, JsonOutput> implements IJsonThreader {
    protected readonly workerScript: WorkerScript;
    private readonly threadingThreshold;
    constructor(options?: ThreaderOptions & {
        threadingThreshold?: number;
    });
    parse<T = JsonValue>(json: string): Promise<T>;
    parseBuffer<T = JsonValue>(buffer: ArrayBuffer): Promise<T>;
    stringify(data: JsonValue): Promise<string>;
    fetch<T = JsonValue>(request: FetchRequest): Promise<T>;
}
export declare function initJsonThreader(): Promise<IJsonThreader>;
export declare const jsonThreader: IJsonThreader;
