declare module "@aspectron/web-worker" { import { EventEmitter } from "events"; import { Readable, Writable } from "stream"; import { URL } from "url"; import { FileHandle } from "fs/promises"; type TransferListItem = 'FileHandle'; interface ResourceLimits { /** * The maximum size of a heap space for recently created objects. */ maxYoungGenerationSizeMb?: number; /** * The maximum size of the main heap in MB. */ maxOldGenerationSizeMb?: number; /** * The size of a pre-allocated memory range used for generated code. */ codeRangeSizeMb?: number; /** * The default maximum stack size for the thread. Small values may lead to unusable Worker instances. * @default 4 */ stackSizeMb?: number; } interface WorkerOptions{ type:string; } class MessagePort extends EventEmitter { close(): void; postMessage(value: any, transferList?: ReadonlyArray): void; ref(): void; unref(): void; start(): void; addListener(event: "close", listener: () => void): this; addListener(event: "message", listener: (value: any) => void): this; addListener(event: "messageerror", listener: (error: Error) => void): this; addListener(event: string | symbol, listener: (...args: any[]) => void): this; emit(event: "close"): boolean; emit(event: "message", value: any): boolean; emit(event: "messageerror", error: Error): boolean; emit(event: string | symbol, ...args: any[]): boolean; on(event: "close", listener: () => void): this; on(event: "message", listener: (value: any) => void): this; on(event: "messageerror", listener: (error: Error) => void): this; on(event: string | symbol, listener: (...args: any[]) => void): this; once(event: "close", listener: () => void): this; once(event: "message", listener: (value: any) => void): this; once(event: "messageerror", listener: (error: Error) => void): this; once(event: string | symbol, listener: (...args: any[]) => void): this; prependListener(event: "close", listener: () => void): this; prependListener(event: "message", listener: (value: any) => void): this; prependListener(event: "messageerror", listener: (error: Error) => void): this; prependListener(event: string | symbol, listener: (...args: any[]) => void): this; prependOnceListener(event: "close", listener: () => void): this; prependOnceListener(event: "message", listener: (value: any) => void): this; prependOnceListener(event: "messageerror", listener: (error: Error) => void): this; prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; removeListener(event: "close", listener: () => void): this; removeListener(event: "message", listener: (value: any) => void): this; removeListener(event: "messageerror", listener: (error: Error) => void): this; removeListener(event: string | symbol, listener: (...args: any[]) => void): this; off(event: "close", listener: () => void): this; off(event: "message", listener: (value: any) => void): this; off(event: "messageerror", listener: (error: Error) => void): this; off(event: string | symbol, listener: (...args: any[]) => void): this; } export default class Worker extends EventEmitter { readonly stdin: Writable | null; readonly stdout: Readable; readonly stderr: Readable; readonly threadId: number; readonly resourceLimits?: ResourceLimits; /** * @param filename The path to the Worker’s main script or module. * Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with ./ or ../, * or a WHATWG URL object using file: protocol. If options.eval is true, this is a string containing JavaScript code rather than a path. */ constructor(filename: string | URL, options?: WorkerOptions); postMessage(value: any, transferList?: ReadonlyArray): void; ref(): void; unref(): void; /** * Stop all JavaScript execution in the worker thread as soon as possible. * Returns a Promise for the exit code that is fulfilled when the `exit` event is emitted. */ terminate(): Promise; /** * Returns a readable stream for a V8 snapshot of the current state of the Worker. * See [`v8.getHeapSnapshot()`][] for more details. * * If the Worker thread is no longer running, which may occur before the * [`'exit'` event][] is emitted, the returned `Promise` will be rejected * immediately with an [`ERR_WORKER_NOT_RUNNING`][] error */ getHeapSnapshot(): Promise; addListener(event: "error", listener: (err: Error) => void): this; addListener(event: "exit", listener: (exitCode: number) => void): this; addListener(event: "message", listener: (value: any) => void): this; addListener(event: "messageerror", listener: (error: Error) => void): this; addListener(event: "online", listener: () => void): this; addListener(event: string | symbol, listener: (...args: any[]) => void): this; emit(event: "error", err: Error): boolean; emit(event: "exit", exitCode: number): boolean; emit(event: "message", value: any): boolean; emit(event: "messageerror", error: Error): boolean; emit(event: "online"): boolean; emit(event: string | symbol, ...args: any[]): boolean; on(event: "error", listener: (err: Error) => void): this; on(event: "exit", listener: (exitCode: number) => void): this; on(event: "message", listener: (value: any) => void): this; on(event: "messageerror", listener: (error: Error) => void): this; on(event: "online", listener: () => void): this; on(event: string | symbol, listener: (...args: any[]) => void): this; once(event: "error", listener: (err: Error) => void): this; once(event: "exit", listener: (exitCode: number) => void): this; once(event: "message", listener: (value: any) => void): this; once(event: "messageerror", listener: (error: Error) => void): this; once(event: "online", listener: () => void): this; once(event: string | symbol, listener: (...args: any[]) => void): this; prependListener(event: "error", listener: (err: Error) => void): this; prependListener(event: "exit", listener: (exitCode: number) => void): this; prependListener(event: "message", listener: (value: any) => void): this; prependListener(event: "messageerror", listener: (error: Error) => void): this; prependListener(event: "online", listener: () => void): this; prependListener(event: string | symbol, listener: (...args: any[]) => void): this; prependOnceListener(event: "error", listener: (err: Error) => void): this; prependOnceListener(event: "exit", listener: (exitCode: number) => void): this; prependOnceListener(event: "message", listener: (value: any) => void): this; prependOnceListener(event: "messageerror", listener: (error: Error) => void): this; prependOnceListener(event: "online", listener: () => void): this; prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; removeListener(event: "error", listener: (err: Error) => void): this; removeListener(event: "exit", listener: (exitCode: number) => void): this; removeListener(event: "message", listener: (value: any) => void): this; removeListener(event: "messageerror", listener: (error: Error) => void): this; removeListener(event: "online", listener: () => void): this; removeListener(event: string | symbol, listener: (...args: any[]) => void): this; off(event: "error", listener: (err: Error) => void): this; off(event: "exit", listener: (exitCode: number) => void): this; off(event: "message", listener: (value: any) => void): this; off(event: "messageerror", listener: (error: Error) => void): this; off(event: "online", listener: () => void): this; off(event: string | symbol, listener: (...args: any[]) => void): this; } }