- * Callback invoked if the worker raised an error.
- */
-export type ErrorHandler<Worker> = (this: Worker, e: Error) => void
-
-/**
- * Callback invoked when the worker has started successfully.
- */
-export type OnlineHandler<Worker> = (this: Worker) => void
-
-/**
- * Callback invoked when the worker exits successfully.
- */
-export type ExitHandler<Worker> = (this: Worker, code: number) => void
-
-/**
- * Basic interface that describes the minimum required implementation of listener events for a pool-worker.
- */
-export interface IWorker {
- on(event: 'error', handler: ErrorHandler<this>): void
- on(event: 'online', handler: OnlineHandler<this>): void
- on(event: 'exit', handler: ExitHandler<this>): void
-}
-
-/**
- * Options for a poolifier pool.
- */
-export interface PoolOptions<Worker> {
- /**
- * A function that will listen for error event on each worker.
- */
- errorHandler?: ErrorHandler<Worker>
- /**
- * A function that will listen for online event on each worker.
- */
- onlineHandler?: OnlineHandler<Worker>
- /**
- * A function that will listen for exit event on each worker.
- */
- exitHandler?: ExitHandler<Worker>
- /**
- * This is just to avoid non-useful warning messages.
- *
- * Will be used to set `maxListeners` on event emitters (workers are event emitters).
- *
- * @default 1000
- * @see [Node events emitter.setMaxListeners(n)](https://nodejs.org/api/events.html#events_emitter_setmaxlisteners_n)
- */
- maxTasks?: number
-}
-
-/**
- * Internal poolifier pool emitter.
- */
-class PoolEmitter extends EventEmitter {}
-
-/**
- * Base class containing some shared logic for all poolifier pools.