import { ForkOptions } from "child_process"; export = Farm; declare function Farm(name: string): Farm.Workers; declare function Farm(name: string, exportedMethods: string[]): Farm.Workers; declare function Farm(options: Farm.FarmOptions, name: string): Farm.Workers; declare function Farm( options: Farm.FarmOptions, name: string, exportedMethods: string[], ): Farm.Workers; type WorkerCallback0 = () => void; type WorkerCallback1 = (arg1: any) => void; type WorkerCallback2 = (arg1: any, arg2: any) => void; type WorkerCallback3 = (arg1: any, arg2: any, arg3: any) => void; type WorkerCallback4 = (arg1: any, arg2: any, arg3: any, arg4: any) => void; declare namespace Farm { export function end(workers: Workers, callback?: Function): void; export interface Workers { [x: string]: Workers, (callback: WorkerCallback): void; (arg1: any, callback: WorkerCallback): void; (arg1: any, arg2: any, callback: WorkerCallback): void; (arg1: any, arg2: any, arg3: any, callback: WorkerCallback): void; ( arg1: any, arg2: any, arg3: any, arg4: any, callback: WorkerCallback, ): void; } export interface FarmOptions { maxCallsPerWorker?: number; maxConcurrentWorkers?: number; maxConcurrentCallsPerWorker?: number; maxConcurrentCalls?: number; maxCallTime?: number; maxRetries?: number; autoStart?: boolean; workerOptions?: ForkOptions; } export type WorkerCallback = | WorkerCallback0 | WorkerCallback1 | WorkerCallback2 | WorkerCallback3 | WorkerCallback4; }