import { ICallback, Timer } from 'redis-smq-common';
import { RedisClient } from '../../../common/redis-client/redis-client.js';
import { EventBus } from '../../../common/event-bus/event-bus.js';
import { Consumer } from '../consumer/consumer.js';
import { MessageHandler } from '../message-handler/message-handler/message-handler.js';
import { IConsumerMessageHandlerArgs } from '../types/index.js';
import { MessageHandlerRunner } from './message-handler-runner.js';
export declare class MultiplexedMessageHandlerRunner extends MessageHandlerRunner {
    protected timer: Timer;
    protected index: number;
    protected activeMessageHandler: MessageHandler | null;
    protected readonly tickIntervalMs: number;
    constructor(consumer: Consumer, redisClient: RedisClient, eventBus: EventBus | null);
    protected nextTick(): void;
    protected getNextMessageHandler(): MessageHandler | null;
    protected execNextMessageHandler: () => void;
    protected createMessageHandlerInstance(handlerParams: IConsumerMessageHandlerArgs): MessageHandler;
    protected shutdownMessageHandler(messageHandler: MessageHandler, cb: ICallback<void>): void;
    protected goingUp(): ((cb: ICallback<void>) => void)[];
    protected goingDown(): ((cb: ICallback<void>) => void)[];
}
//# sourceMappingURL=multiplexed-message-handler-runner.d.ts.map