UNPKG

5.89 kBTypeScriptView Raw
1declare module "worker_threads" {
2 import { EventEmitter } from "events";
3 import { Readable, Writable } from "stream";
4
5 const isMainThread: boolean;
6 const parentPort: null | MessagePort;
7 const threadId: number;
8 const workerData: any;
9
10 class MessageChannel {
11 readonly port1: MessagePort;
12 readonly port2: MessagePort;
13 }
14
15 class MessagePort extends EventEmitter {
16 close(): void;
17 postMessage(value: any, transferList?: ReadonlyArray<ArrayBuffer | MessagePort>): void;
18 ref(): void;
19 unref(): void;
20 start(): void;
21
22 addListener(event: "close", listener: () => void): this;
23 addListener(event: "message", listener: (value: any) => void): this;
24 addListener(event: string | symbol, listener: (...args: any[]) => void): this;
25
26 emit(event: "close"): boolean;
27 emit(event: "message", value: any): boolean;
28 emit(event: string | symbol, ...args: any[]): boolean;
29
30 on(event: "close", listener: () => void): this;
31 on(event: "message", listener: (value: any) => void): this;
32 on(event: string | symbol, listener: (...args: any[]) => void): this;
33
34 once(event: "close", listener: () => void): this;
35 once(event: "message", listener: (value: any) => void): this;
36 once(event: string | symbol, listener: (...args: any[]) => void): this;
37
38 prependListener(event: "close", listener: () => void): this;
39 prependListener(event: "message", listener: (value: any) => void): this;
40 prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
41
42 prependOnceListener(event: "close", listener: () => void): this;
43 prependOnceListener(event: "message", listener: (value: any) => void): this;
44 prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
45
46 removeListener(event: "close", listener: () => void): this;
47 removeListener(event: "message", listener: (value: any) => void): this;
48 removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
49
50 off(event: "close", listener: () => void): this;
51 off(event: "message", listener: (value: any) => void): this;
52 off(event: string | symbol, listener: (...args: any[]) => void): this;
53 }
54
55 interface WorkerOptions {
56 eval?: boolean;
57 workerData?: any;
58 stdin?: boolean;
59 stdout?: boolean;
60 stderr?: boolean;
61 }
62
63 class Worker extends EventEmitter {
64 readonly stdin: Writable | null;
65 readonly stdout: Readable;
66 readonly stderr: Readable;
67 readonly threadId: number;
68
69 constructor(filename: string, options?: WorkerOptions);
70
71 postMessage(value: any, transferList?: ReadonlyArray<ArrayBuffer | MessagePort>): void;
72 ref(): void;
73 unref(): void;
74 terminate(callback?: (err: any, exitCode: number) => void): void;
75
76 addListener(event: "error", listener: (err: any) => void): this;
77 addListener(event: "exit", listener: (exitCode: number) => void): this;
78 addListener(event: "message", listener: (value: any) => void): this;
79 addListener(event: "online", listener: () => void): this;
80 addListener(event: string | symbol, listener: (...args: any[]) => void): this;
81
82 emit(event: "error", err: any): boolean;
83 emit(event: "exit", exitCode: number): boolean;
84 emit(event: "message", value: any): boolean;
85 emit(event: "online"): boolean;
86 emit(event: string | symbol, ...args: any[]): boolean;
87
88 on(event: "error", listener: (err: any) => void): this;
89 on(event: "exit", listener: (exitCode: number) => void): this;
90 on(event: "message", listener: (value: any) => void): this;
91 on(event: "online", listener: () => void): this;
92 on(event: string | symbol, listener: (...args: any[]) => void): this;
93
94 once(event: "error", listener: (err: any) => void): this;
95 once(event: "exit", listener: (exitCode: number) => void): this;
96 once(event: "message", listener: (value: any) => void): this;
97 once(event: "online", listener: () => void): this;
98 once(event: string | symbol, listener: (...args: any[]) => void): this;
99
100 prependListener(event: "error", listener: (err: any) => void): this;
101 prependListener(event: "exit", listener: (exitCode: number) => void): this;
102 prependListener(event: "message", listener: (value: any) => void): this;
103 prependListener(event: "online", listener: () => void): this;
104 prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
105
106 prependOnceListener(event: "error", listener: (err: any) => void): this;
107 prependOnceListener(event: "exit", listener: (exitCode: number) => void): this;
108 prependOnceListener(event: "message", listener: (value: any) => void): this;
109 prependOnceListener(event: "online", listener: () => void): this;
110 prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
111
112 removeListener(event: "error", listener: (err: any) => void): this;
113 removeListener(event: "exit", listener: (exitCode: number) => void): this;
114 removeListener(event: "message", listener: (value: any) => void): this;
115 removeListener(event: "online", listener: () => void): this;
116 removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
117
118 off(event: "error", listener: (err: any) => void): this;
119 off(event: "exit", listener: (exitCode: number) => void): this;
120 off(event: "message", listener: (value: any) => void): this;
121 off(event: "online", listener: () => void): this;
122 off(event: string | symbol, listener: (...args: any[]) => void): this;
123 }
124}