import { ICallback, ILogger, IRedisClient, PanicError, Runnable } from 'redis-smq-common';
import { TConsumerDequeueMessageEvent } from '../../../event-bus/index.js';
import { IRedisSMQParsedConfig } from '../../../config-manager/index.js';
import { EQueueType, IQueueParsedParams, IQueueRateLimit } from '../../../index.js';
import { IConsumerContext } from '../../types/consumer-context.js';
export declare class DequeueMessage extends Runnable<TConsumerDequeueMessageEvent> {
    protected readonly consumerContext: IConsumerContext;
    protected readonly config: IRedisSMQParsedConfig;
    protected logger: ILogger;
    protected queue: IQueueParsedParams;
    protected keyQueues: string;
    protected keyQueueConsumers: string;
    protected keyConsumerQueues: string;
    protected keyQueueProcessingQueues: string;
    protected keyQueueProcessing: string;
    protected keyQueuePending: string;
    protected keyQueuePriorityPending: string;
    protected keyQueueProperties: string;
    protected blockUntilMessageReceived: boolean;
    protected autoCloseRedisConnection: boolean;
    protected redisClient: IRedisClient | null;
    protected queueRateLimit: IQueueRateLimit | null;
    protected queueType: EQueueType | null;
    constructor(consumerContext: IConsumerContext, queue: IQueueParsedParams, blockUntilMessageReceived?: boolean, autoCloseRedisConnection?: boolean);
    protected runDequeue(redisClient: IRedisClient): void;
    protected performDequeue(redisClient: IRedisClient): void;
    protected getRedisClient(): IRedisClient | PanicError;
    protected handleError(err: Error): void;
    protected goingUp(): ((cb: ICallback) => void)[];
    protected goingDown(): ((cb: ICallback) => void)[];
    protected isPriorityQueuingEnabled(): boolean;
    protected handleMessage: ICallback<string | null>;
    dequeue(): void;
}
//# sourceMappingURL=dequeue-message.d.ts.map