import { ICallback, ILogger, Runnable } from 'redis-smq-common';
import { TConsumerConsumeMessageEvent } from '../../../event-bus/index.js';
import { IRedisSMQParsedConfig } from '../../../config-manager/index.js';
import { MessageEnvelope } from '../../../message/message-envelope.js';
import { IQueueParsedParams } from '../../../queue-manager/index.js';
import { EMessageUnacknowledgementCause } from './types/index.js';
import { MessageUnacknowledger } from './message-unacknowledger.js';
import { TConsumerMessageHandler } from '../types/index.js';
import { IConsumerContext } from '../../types/consumer-context.js';
import { MessageAcknowledger } from './message-acknowledger.js';
import { IConsumerParsedOptions } from '../../types/index.js';
export declare class ConsumeMessage extends Runnable<TConsumerConsumeMessageEvent> {
    protected readonly consumerId: string;
    protected readonly config: IRedisSMQParsedConfig;
    protected readonly logger: ILogger;
    protected readonly keyQueueProperties: string;
    protected readonly keyQueueProcessing: string;
    protected readonly keyQueueAcknowledged: string;
    protected readonly queue: IQueueParsedParams;
    protected readonly messageHandler: TConsumerMessageHandler;
    protected readonly messageHandlerId: string;
    protected readonly consumerOptions: IConsumerParsedOptions;
    private redisClient;
    private consumeMessageWorker;
    private messageUnacknowledger;
    private messageAcknowledger;
    constructor(consumerContext: IConsumerContext, queue: IQueueParsedParams, messageHandlerId: string, messageHandler: TConsumerMessageHandler);
    protected initializeMessageAcknowledger(): MessageAcknowledger;
    protected initializeMessageUnacknowledger(): MessageUnacknowledger;
    handleReceivedMessage(message: MessageEnvelope): void;
    protected acknowledgeMessage(message: MessageEnvelope): void;
    protected unacknowledgeMessage(message: MessageEnvelope, cause: EMessageUnacknowledgementCause): void;
    private onMessageAcknowledged;
    private handleUnacknowledgementResult;
    private consumeMessage;
    private invokeMessageHandler;
    private getWorker;
    private validateHandler;
    protected goingUp(): ((cb: ICallback<void>) => void)[];
    protected goingDown(): ((cb: ICallback<void>) => void)[];
    protected handleError(err: unknown): void;
}
//# sourceMappingURL=consume-message.d.ts.map