import { IQueueParams, IQueueParsedParams } from '../../queue-manager/index.js';
import { MessageHandlerRunner } from './message-handler-runner.js';
import { IQueueStateTransition } from '../../queue-state-manager/index.js';
import { ICallback, ILogger } from 'redis-smq-common';
export declare class QueueStateChangeHandler {
    protected readonly messageHandlerRunner: MessageHandlerRunner;
    protected readonly internalEventBus: import("redis-smq-common").EventBusRedis<import("../../index.js").TRedisSMQEvent>;
    protected readonly logger: ILogger;
    protected readonly pausedQueues: Map<string, IQueueParams>;
    protected readonly stoppedQueues: Map<string, IQueueParams>;
    protected readonly lockedQueues: Map<string, IQueueParams>;
    constructor(messageHandlerRunner: MessageHandlerRunner, logger: ILogger);
    protected onQueueStateChange: (queue: IQueueParams, transition: IQueueStateTransition) => void;
    protected handleQueueStopped(queue: IQueueParams): void;
    protected handleQueuePaused(queue: IQueueParams): void;
    protected handleQueueLocked(queue: IQueueParams): void;
    protected handleQueueActive(queue: IQueueParams): void;
    protected getQueueConfigurationsForQueue(queue: IQueueParams): IQueueParsedParams[];
    protected stopAllQueueHandlers(queueConfigs: IQueueParsedParams[], state: 'STOPPED' | 'PAUSED' | 'LOCKED'): void;
    protected startAllQueueHandlers(queueConfigs: IQueueParsedParams[]): void;
    isQueueStopped(queueParams: IQueueParams): boolean;
    isQueuePaused(queueParams: IQueueParams): boolean;
    isQueueLocked(queueParams: IQueueParams): boolean;
    isQueueActive(queueParams: IQueueParams): boolean;
    getStoppedQueues(): IQueueParams[];
    getPausedQueues(): IQueueParams[];
    getLockedQueues(): IQueueParams[];
    shutdown: (cb: ICallback) => void;
    private getQueueKey;
}
//# sourceMappingURL=queue-state-change-handler.d.ts.map