import { OnModuleDestroy } from '@nestjs/common';
import { QueuesModuleOptions } from '../../interfaces';
import { QueueMessage, QueuePublisher } from '../../interfaces/mq';
import { MqMessageQueueService } from '../mq-message-queue.service';
import { MqMessageService } from '../mq-message.service';
export declare abstract class RedisPublisher<T> implements OnModuleDestroy, QueuePublisher<T> {
    protected readonly mqMessageService: MqMessageService;
    protected readonly mqMessageQueueService: MqMessageQueueService;
    private readonly logger;
    private readonly serviceRole;
    private client;
    constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService);
    abstract options(): QueuesModuleOptions;
    private getClient;
    onModuleDestroy(): Promise<void>;
    publish(message: QueueMessage<T>): Promise<string>;
    private persistToDatabase;
}
//# sourceMappingURL=redis-publisher.service.d.ts.map