import type { ParentThreadMessageType, WorkerMessageType } from '../constants/messages.js'; import type { MessengerRawData } from './messenger.js'; import type { ExitCode } from './workers.js'; export type RemoveListenerFunction = () => void; export type ParentThreadBaseMessageBody = { type: Type; }; export type ParentThreadSendMessageBody = { data: Data; } & ParentThreadBaseMessageBody; export type ParentThreadCallMessageBody = { key: string; name: string; params: any[]; } & ParentThreadBaseMessageBody; export type ParentThreadMessengerTransferBody = { data: MessengerRawData; } & ParentThreadBaseMessageBody; export type WorkerBaseMessageBody = { type: Type; }; export type WorkerSendMessageBody = { data: Data; } & WorkerBaseMessageBody; export type WorkerTaskReturnMessageBody = { data: any; } & WorkerBaseMessageBody; export type WorkerTaskErrorMessageBody = { data: Error; } & WorkerBaseMessageBody; export type WorkerCallReturnMessageBody = { key: string; data: any; } & WorkerBaseMessageBody; export type WorkerCallErrorMessageBody = { key: string; data: Error; } & WorkerBaseMessageBody; export type WorkerMessengerTransferSuccessBody = { data: string; } & WorkerBaseMessageBody; export type WorkerExceptionMessageBody = { data: Error; } & WorkerBaseMessageBody; export type WorkerInitializedMessageBody = WorkerBaseMessageBody; export type WorkerExitMessageBody = { code: ExitCode; } & WorkerBaseMessageBody;