1 | declare module "worker_threads" {
|
2 | import { Context } from "vm";
|
3 | import { EventEmitter } from "events";
|
4 | import { Readable, Writable } from "stream";
|
5 |
|
6 | const isMainThread: boolean;
|
7 | const parentPort: null | MessagePort;
|
8 | const threadId: number;
|
9 | const workerData: any;
|
10 |
|
11 | class MessageChannel {
|
12 | readonly port1: MessagePort;
|
13 | readonly port2: MessagePort;
|
14 | }
|
15 |
|
16 | class MessagePort extends EventEmitter {
|
17 | close(): void;
|
18 | postMessage(value: any, transferList?: Array<ArrayBuffer | MessagePort>): void;
|
19 | ref(): void;
|
20 | unref(): void;
|
21 | start(): void;
|
22 |
|
23 | addListener(event: "close", listener: () => void): this;
|
24 | addListener(event: "message", listener: (value: any) => void): this;
|
25 | addListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
26 |
|
27 | emit(event: "close"): boolean;
|
28 | emit(event: "message", value: any): boolean;
|
29 | emit(event: string | symbol, ...args: any[]): boolean;
|
30 |
|
31 | on(event: "close", listener: () => void): this;
|
32 | on(event: "message", listener: (value: any) => void): this;
|
33 | on(event: string | symbol, listener: (...args: any[]) => void): this;
|
34 |
|
35 | once(event: "close", listener: () => void): this;
|
36 | once(event: "message", listener: (value: any) => void): this;
|
37 | once(event: string | symbol, listener: (...args: any[]) => void): this;
|
38 |
|
39 | prependListener(event: "close", listener: () => void): this;
|
40 | prependListener(event: "message", listener: (value: any) => void): this;
|
41 | prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
42 |
|
43 | prependOnceListener(event: "close", listener: () => void): this;
|
44 | prependOnceListener(event: "message", listener: (value: any) => void): this;
|
45 | prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
46 |
|
47 | removeListener(event: "close", listener: () => void): this;
|
48 | removeListener(event: "message", listener: (value: any) => void): this;
|
49 | removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
50 |
|
51 | off(event: "close", listener: () => void): this;
|
52 | off(event: "message", listener: (value: any) => void): this;
|
53 | off(event: string | symbol, listener: (...args: any[]) => void): this;
|
54 | }
|
55 |
|
56 | interface WorkerOptions {
|
57 | eval?: boolean;
|
58 | workerData?: any;
|
59 | stdin?: boolean;
|
60 | stdout?: boolean;
|
61 | stderr?: boolean;
|
62 | execArgv?: string[];
|
63 | }
|
64 |
|
65 | class Worker extends EventEmitter {
|
66 | readonly stdin: Writable | null;
|
67 | readonly stdout: Readable;
|
68 | readonly stderr: Readable;
|
69 | readonly threadId: number;
|
70 |
|
71 | constructor(filename: string, options?: WorkerOptions);
|
72 |
|
73 | postMessage(value: any, transferList?: Array<ArrayBuffer | MessagePort>): void;
|
74 | ref(): void;
|
75 | unref(): void;
|
76 | terminate(callback?: (err: Error, exitCode: number) => void): void;
|
77 | /**
|
78 | * Transfer a `MessagePort` to a different `vm` Context. The original `port`
|
79 | * object will be rendered unusable, and the returned `MessagePort` instance will
|
80 | * take its place.
|
81 | *
|
82 | * The returned `MessagePort` will be an object in the target context, and will
|
83 | * inherit from its global `Object` class. Objects passed to the
|
84 | * `port.onmessage()` listener will also be created in the target context
|
85 | * and inherit from its global `Object` class.
|
86 | *
|
87 | * However, the created `MessagePort` will no longer inherit from
|
88 | * `EventEmitter`, and only `port.onmessage()` can be used to receive
|
89 | * events using it.
|
90 | */
|
91 | moveMessagePortToContext(port: MessagePort, context: Context): MessagePort;
|
92 |
|
93 | addListener(event: "error", listener: (err: Error) => void): this;
|
94 | addListener(event: "exit", listener: (exitCode: number) => void): this;
|
95 | addListener(event: "message", listener: (value: any) => void): this;
|
96 | addListener(event: "online", listener: () => void): this;
|
97 | addListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
98 |
|
99 | emit(event: "error", err: Error): boolean;
|
100 | emit(event: "exit", exitCode: number): boolean;
|
101 | emit(event: "message", value: any): boolean;
|
102 | emit(event: "online"): boolean;
|
103 | emit(event: string | symbol, ...args: any[]): boolean;
|
104 |
|
105 | on(event: "error", listener: (err: Error) => void): this;
|
106 | on(event: "exit", listener: (exitCode: number) => void): this;
|
107 | on(event: "message", listener: (value: any) => void): this;
|
108 | on(event: "online", listener: () => void): this;
|
109 | on(event: string | symbol, listener: (...args: any[]) => void): this;
|
110 |
|
111 | once(event: "error", listener: (err: Error) => void): this;
|
112 | once(event: "exit", listener: (exitCode: number) => void): this;
|
113 | once(event: "message", listener: (value: any) => void): this;
|
114 | once(event: "online", listener: () => void): this;
|
115 | once(event: string | symbol, listener: (...args: any[]) => void): this;
|
116 |
|
117 | prependListener(event: "error", listener: (err: Error) => void): this;
|
118 | prependListener(event: "exit", listener: (exitCode: number) => void): this;
|
119 | prependListener(event: "message", listener: (value: any) => void): this;
|
120 | prependListener(event: "online", listener: () => void): this;
|
121 | prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
122 |
|
123 | prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
124 | prependOnceListener(event: "exit", listener: (exitCode: number) => void): this;
|
125 | prependOnceListener(event: "message", listener: (value: any) => void): this;
|
126 | prependOnceListener(event: "online", listener: () => void): this;
|
127 | prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
128 |
|
129 | removeListener(event: "error", listener: (err: Error) => void): this;
|
130 | removeListener(event: "exit", listener: (exitCode: number) => void): this;
|
131 | removeListener(event: "message", listener: (value: any) => void): this;
|
132 | removeListener(event: "online", listener: () => void): this;
|
133 | removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
134 |
|
135 | off(event: "error", listener: (err: Error) => void): this;
|
136 | off(event: "exit", listener: (exitCode: number) => void): this;
|
137 | off(event: "message", listener: (value: any) => void): this;
|
138 | off(event: "online", listener: () => void): this;
|
139 | off(event: string | symbol, listener: (...args: any[]) => void): this;
|
140 | }
|
141 | }
|