import { Worker as WorkerThread } from 'worker_threads'; import { ICallback } from '../async/index.js'; import { EventEmitter } from '../event/index.js'; import { ILogger } from '../logger/index.js'; import { EWorkerType, TWorkerThreadParentMessage } from './types/index.js'; export type TWorkerEvent = { 'worker.error': (err: Error) => void; 'worker.data': (payload: unknown) => void; 'worker.terminated': () => void; }; export declare abstract class Worker extends EventEmitter { protected abstract readonly type: EWorkerType; protected readonly id: `${string}-${string}-${string}-${string}-${string}`; protected readonly workerFilename: string; protected readonly initialPayload: unknown; protected workerThread: WorkerThread | null; private stdoutStream; private stderrStream; protected logger: ILogger; private isShuttingDown; protected constructor(workerFilename: string, initialPayload: unknown, logger: ILogger); private cleanupStreams; protected getWorkerThread(): WorkerThread; private setupWorkerListeners; protected postMessage(message: TWorkerThreadParentMessage, callback?: ICallback): void; shutdown(cb: ICallback): void; private removeFromGlobalList; getId(): string; getWorkerFilename(): string; } //# sourceMappingURL=worker.d.ts.map