import { ICallback, ILogger, Runnable } from 'redis-smq-common';
import { TConsumerMessageHandlerRunnerEvent } from '../../../common/index.js';
import { RedisClient } from '../../../common/redis-client/redis-client.js';
import { EventBus } from '../../../common/event-bus/event-bus.js';
import { IQueueParsedParams } from '../../queue/index.js';
import { Consumer } from '../consumer/consumer.js';
import { MessageHandler } from '../message-handler/message-handler/message-handler.js';
import { IConsumerMessageHandlerArgs, TConsumerMessageHandler } from '../types/index.js';
export declare class MessageHandlerRunner extends Runnable<TConsumerMessageHandlerRunnerEvent> {
    protected consumer: Consumer;
    protected redisClient: RedisClient;
    protected logger: ILogger;
    protected messageHandlerInstances: MessageHandler[];
    protected messageHandlers: IConsumerMessageHandlerArgs[];
    protected eventBus: EventBus | null;
    constructor(consumer: Consumer, redisClient: RedisClient, eventBus: EventBus | null);
    protected getLogger(): ILogger;
    protected getMessageHandlerInstance(queue: IQueueParsedParams): MessageHandler | undefined;
    protected getMessageHandler(queue: IQueueParsedParams): IConsumerMessageHandlerArgs | undefined;
    protected createMessageHandlerInstance(handlerParams: IConsumerMessageHandlerArgs): MessageHandler;
    protected runMessageHandler(handlerParams: IConsumerMessageHandlerArgs, cb: ICallback<void>): void;
    protected shutdownMessageHandler(messageHandler: MessageHandler, cb: ICallback<void>): void;
    protected runMessageHandlers: (cb: ICallback<void>) => void;
    protected shutDownMessageHandlers: (cb: ICallback<void>) => void;
    protected goingUp(): ((cb: ICallback<void>) => void)[];
    protected goingDown(): ((cb: ICallback<void>) => void)[];
    protected handleError(err: Error): void;
    removeMessageHandler(queue: IQueueParsedParams, cb: ICallback<void>): void;
    addMessageHandler(queue: IQueueParsedParams, messageHandler: TConsumerMessageHandler, cb: ICallback<void>): void;
    getQueues(): IQueueParsedParams[];
}
//# sourceMappingURL=message-handler-runner.d.ts.map