///
///
import { Debugger } from "debug";
import { EventEmitter } from "stream";
import { MessagePort, WorkerOptions } from "worker_threads";
import { CallableStore } from "./components/callable-store";
import { ThreadId, ThreadMethodKey } from "./types/general";
export interface QueuedCall {
key: ThreadMethodKey;
args: Array;
resolve: (result: any) => void;
reject: (error: Error) => void;
}
export declare class WorkerThread extends EventEmitter {
private debug;
readonly id: ThreadId;
connected: boolean;
private worker;
readonly port: MessagePort;
error: Error | boolean;
callQueue: QueuedCall[];
private busy;
private isTerminated;
callableStore: CallableStore;
constructor(id: ThreadId, parentId: ThreadId, debug: Debugger, workerString: string, resolvedWorkerPath: string, workerOptions: WorkerOptions);
terminate(): void;
onReady(): void;
callOnThread(key: ThreadMethodKey, args: any[], resolve: (result: any) => void, reject: (error: Error) => void): void;
}