import { AnyType, ValueOrPromise } from '../../common/types'; import { MessagePort, Transferable, Worker, WorkerOptions } from 'node:worker_threads'; export interface IWorker { worker: Worker; options: WorkerOptions; onOnline(): ValueOrPromise; onExit(opts: { code: string | number; }): ValueOrPromise; onError(opts: { error: Error; }): ValueOrPromise; onMessage(opts: { message: MessageType; }): ValueOrPromise; onMessageError(opts: { error: Error; }): ValueOrPromise; } export interface IWorkerThread { buses: { [workerKey: string | symbol]: IWorkerBus; }; } export interface IWorkerMessageBusHandler { onMessage: (opts: { message: IConsumePayload; }) => ValueOrPromise; onClose: () => ValueOrPromise; onError: (opts: { error: Error; }) => ValueOrPromise; onExit: (opts: { exitCode: number | string; }) => ValueOrPromise; } export interface IWorkerBus { port: MessagePort; handler: IWorkerMessageBusHandler; onBeforePostMessage?(opts: { message: IPublishPayload; }): ValueOrPromise; onAfterPostMessage?(opts: { message: IPublishPayload; }): ValueOrPromise; postMessage(opts: { message: IPublishPayload; transferList: readonly Transferable[] | undefined; }): ValueOrPromise; } //# sourceMappingURL=types.d.ts.map