import { ICallback } from '../../async/index.js'; import { ILogger } from '../../logger/index.js'; import { IRedisClient } from '../../redis-client/index.js'; import { Runnable } from '../../runnable/index.js'; import { RunnableWorker } from '../runnable-worker.js'; export type TWorkerClusterEvent = { 'workerCluster.error': (err: Error) => void; 'workerCluster.workerAdded': (worker: RunnableWorker) => void; 'workerCluster.workerRemoved': (workerId: string) => void; }; export declare class WorkerCluster extends Runnable { protected static LOCK_TTL: number; private readonly uniqueGroupIdentifier; private readonly workerHandler; private readonly workerLoader; private readonly redisClient; protected readonly logger: ILogger; private locker; constructor(redisClient: IRedisClient, logger: ILogger, uniqueGroupIdentifier: string | null, workerFilenamePattern?: string); private handleWorkerError; private acquireLock; private releaseLock; protected goingUp(): ((cb: ICallback) => void)[]; protected goingDown(): ((cb: ICallback) => void)[]; protected handleError(err: Error): void; addWorker(filename: string, payload: unknown): RunnableWorker; loadFromDir: (workersDir: string, payload: WorkerPayload, cb: ICallback) => void; private assertDownState; private validateDownState; } //# sourceMappingURL=worker-cluster.d.ts.map