import { Worker } from "cluster"; import { Invokable } from "./Invokable.js"; export declare class RecycledWorker { get worker(): Worker; private currentWorker; private destroyed; private eventMap; constructor(env?: any); on(msg: string, handler: any): void; send(a: any): void; destroy(): void; } export default abstract class ClusterInstance extends Invokable { get maxWorkerCount(): number; protected isPrimary: boolean; protected readonly workers: RecycledWorker[]; run(arg: T): void; protected abstract runPrimary(arg: T): Promise; protected abstract runWorker(arg: T): Promise; protected fork(env?: any): RecycledWorker; protected setupPrimary(arg: T): Promise; /** * keep worker process alive for 4 hours by default * you can choose your own recycle schedule. * * Recycling process is important to flush out dead connections. */ protected keepAlive(): Promise; protected setupWorker(arg: T): Promise; protected invoke(invoke: string, ...args: any[]): Promise; } //# sourceMappingURL=ClusterInstance.d.ts.map