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?: Array<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?: Array<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} 125