/// import { DefaultListener, ListenerSignature } from "tiny-typed-emitter"; import { MessagePort } from "worker_threads"; import type { Thread } from "./Thread"; export declare type InternalFunctions = { runQueue: Thread["_runQueue"]; stopExecution: Thread["stopExecution"]; require: Thread["require"]; _getThreadReferenceData: Thread["_getThreadReferenceData"]; }; declare type UnsafeReturnType = T extends (...args: any[]) => infer R ? R : any; declare type UnsafeParameters = T extends (...args: infer P) => any ? P : never; export declare type PromisefulModule = { [K in keyof M]: M[K] extends Function ? UnsafeReturnType extends PromiseLike ? (...args: UnsafeParameters) => UnsafeReturnType : (...args: UnsafeParameters) => Promise> : () => Promise; } & InternalFunctions; export declare type ThreadExports = { [key: string]: unknown; }; export declare type ThreadData = undefined | unknown; export declare type ThreadExitInfo = { code?: number; err?: Error; }; export declare type ThreadModule = DefaultListener> = NodeJS.Module & { thread: Thread<{}, Data, E>; }; export declare type ThreadOptions = { threadModule?: string; eval?: boolean; sharedArrayBuffer?: SharedArrayBuffer; data?: T; count?: number; }; export declare type UnknownFunction = (...args: any[]) => Promise; export declare type threadModule = { workerPort: MessagePort; workerData: { sharedArrayBuffer: SharedArrayBuffer; }; transfers: [MessagePort]; }; export declare type Messages = { Reject: { type: "reject"; data: Error; promiseKey: number; }; Resolve: { type: "resolve"; data: Array; promiseKey: number; }; Event: { type: "event"; eventName: string; args: Array; promiseKey: number; }; Call: { func: keyof ThreadExports; type: "call"; data: Array; promiseKey: number; }; Queue: { func: keyof ThreadExports; type: "queue"; data: Array; promiseKey: number; }; Exit: { type: "exit"; exitInfo: ThreadExitInfo; }; }; export declare type AnyMessage = Messages[keyof Messages]; export declare type RequiredThread = Thread & Omit, "require">; export {}; //# sourceMappingURL=Types.d.ts.map