import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { QueuesModuleOptions } from '../../interfaces';
import { QueueMessage, QueueSubscriber } from '../../interfaces/mq';
import { MqMessageQueueService } from '../mq-message-queue.service';
import { MqMessageService } from '../mq-message.service';
export declare abstract class RedisSubscriber<T> implements OnModuleInit, OnModuleDestroy, QueueSubscriber<T> {
    protected readonly mqMessageService: MqMessageService;
    protected readonly mqMessageQueueService: MqMessageQueueService;
    private readonly logger;
    private readonly serviceRole;
    private client;
    private reconnectAttempt;
    private stopping;
    constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService);
    abstract subscribe(message: QueueMessage<T>): Promise<any>;
    abstract options(): QueuesModuleOptions;
    onModuleInit(): Promise<void>;
    onModuleDestroy(): Promise<void>;
    private connectAndSubscribe;
    private handleProcessingError;
    private triggerReconnect;
    private cleanup;
    private backoff;
    protected processMessage(message: QueueMessage<T>): Promise<void>;
    private updateStatusInDatabase;
}
//# sourceMappingURL=redis-subscriber.service.d.ts.map