import { ICallback, ILogger, Runnable } from 'redis-smq-common';
import { MessageEnvelope } from '../../../message/message-envelope.js';
import { IQueueParsedParams } from '../../../queue-manager/index.js';
import { EMessageUnacknowledgementCause, TUnacknowledgementResult } from './types/index.js';
import { IConsumerParsedOptions } from '../../types/index.js';
export type TMessageUnacknowledgerEvent = {
    'messageUnacknowledger.error': (error: unknown) => void;
    'messageUnacknowledger.messagesUnacknowledged': (recoveryStatus: TUnacknowledgementResult) => void;
};
export declare class MessageUnacknowledger extends Runnable<TMessageUnacknowledgerEvent> {
    private readonly consumerId;
    private readonly queue;
    private readonly queueRef;
    private readonly useBatchUnacks;
    private readonly batchSize;
    private readonly batchTimeoutMs;
    private readonly batch;
    protected readonly logger: ILogger;
    constructor(consumerId: string, queue: IQueueParsedParams, logger: ILogger, consumerOptions: IConsumerParsedOptions);
    private getResolution;
    private buildPendingMessages;
    private processBatch;
    private getMessagesFromQueue;
    protected goingDown(): Array<(cb: ICallback<void>) => void>;
    protected handleError(err: unknown): void;
    add(message: MessageEnvelope, cause: EMessageUnacknowledgementCause): void;
    unacknowledgeMessage(message: MessageEnvelope, cause: EMessageUnacknowledgementCause, cb: ICallback<TUnacknowledgementResult>): void;
    unacknowledgeProcessingQueue(cause: EMessageUnacknowledgementCause, cb: ICallback<TUnacknowledgementResult>): void;
    flush(cb?: ICallback<TUnacknowledgementResult>): void;
}
//# sourceMappingURL=message-unacknowledger.d.ts.map