import { ICallback, ILogger, Runnable, WorkerCallable } from 'redis-smq-common';
import { TConsumerConsumeMessageEvent } from '../../../../common/index.js';
import { RedisClient } from '../../../../common/redis-client/redis-client.js';
import { EventBus } from '../../../event-bus/index.js';
import { IMessageTransferable } from '../../../message/index.js';
import { MessageEnvelope } from '../../../message/message-envelope.js';
import { IQueueParsedParams } from '../../../queue/index.js';
import { Consumer } from '../../consumer/consumer.js';
import { EMessageUnknowledgmentReason, TConsumerMessageHandler } from '../../types/index.js';
export declare class ConsumeMessage extends Runnable<TConsumerConsumeMessageEvent> {
    protected logger: ILogger;
    protected keyQueueProcessing: string;
    protected keyQueueAcknowledged: string;
    protected queue: IQueueParsedParams;
    protected consumerId: string;
    protected messageHandler: TConsumerMessageHandler;
    protected messageHandlerId: string;
    protected redisClient: RedisClient;
    protected consumeMessageWorker: WorkerCallable<IMessageTransferable, void> | null;
    constructor(redisClient: RedisClient, consumer: Consumer, queue: IQueueParsedParams, messageHandlerId: string, messageHandler: TConsumerMessageHandler, logger: ILogger, eventBus: EventBus | null);
    protected getLogger(): ILogger;
    protected acknowledgeMessage(message: MessageEnvelope): void;
    protected unacknowledgeMessage(msg: MessageEnvelope, unknowledgmentReason: EMessageUnknowledgmentReason): void;
    protected getConsumeMessageWorker(messageHandlerFilename: string): WorkerCallable<IMessageTransferable, void>;
    protected invokeMessageHandler(messageHandler: TConsumerMessageHandler, msg: IMessageTransferable, cb: ICallback<void>): void;
    protected consumeMessage(msg: MessageEnvelope): void;
    protected validateMessageHandler: (cb: ICallback<void>) => void;
    protected goingUp(): ((cb: ICallback<void>) => void)[];
    protected goingDown(): ((cb: ICallback<void>) => void)[];
    protected handleError(err: Error): void;
    handleReceivedMessage(message: MessageEnvelope): void;
}
//# sourceMappingURL=consume-message.d.ts.map