import { MessageHandler } from '../message-handler';
import { MessageHandlerRunner } from '../message-handler-runner';
import { RedisClient, Ticker } from 'redis-smq-common';
import { TConsumerMessageHandlerParams } from '../../../../../types';
import { Consumer } from '../../consumer';
import { ICallback, ICompatibleLogger } from 'redis-smq-common/dist/types';
export declare class MultiplexedMessageHandlerRunner extends MessageHandlerRunner {
    protected muxRedisClient: RedisClient | null;
    protected ticker: Ticker;
    protected index: number;
    protected activeMessageHandler: MessageHandler | null | undefined;
    protected multiplexingDelay: boolean;
    constructor(consumer: Consumer, logger: ICompatibleLogger);
    protected nextTick(): void;
    protected registerMessageHandlerEvents(messageHandler: MessageHandler): void;
    protected getNextMessageHandler(): MessageHandler | undefined;
    protected dequeue(): void;
    protected createMessageHandlerInstance(redisClient: RedisClient, handlerParams: TConsumerMessageHandlerParams): MessageHandler;
    protected runMessageHandler(handlerParams: TConsumerMessageHandlerParams, cb: ICallback<void>): void;
    protected getMuxRedisClient(): RedisClient;
    protected shutdownMessageHandler(messageHandler: MessageHandler, cb: ICallback<void>): void;
    run(redisClient: RedisClient, cb: ICallback<void>): void;
    shutdown(cb: ICallback<void>): void;
}
