import { Logger, 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';
import { PollerService } from '../poller.service';
export declare abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscriber<T> {
    protected readonly mqMessageService: MqMessageService;
    protected readonly mqMessageQueueService: MqMessageQueueService;
    protected readonly poller: PollerService;
    private _loggerInstance?;
    private readonly url;
    private readonly serviceRole;
    constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService, poller: PollerService);
    protected get loggerContext(): string;
    protected get logger(): Logger;
    abstract subscribe(message: QueueMessage<T>): Promise<any>;
    abstract options(): QueuesModuleOptions;
    private processNext;
    onModuleInit(): Promise<void>;
    onModuleDestroy(): void;
    protected processMessage(message: QueueMessage<T>): Promise<void>;
    private retryMessage;
    private updateStatusInDatabase;
}
//# sourceMappingURL=database-subscriber.service.d.ts.map