import { OnModuleInit } from '@nestjs/common';
import { Channel, Options, ConfirmChannel } from 'amqplib';
import { RmqNestjsConnectService } from './rmq-connect.service';
import { INotifyReply, IPublishOptions, IRMQOptions } from './interfaces';
import { RmqErrorGlobalService } from './common';
export declare class RmqGlobalService implements OnModuleInit {
    private readonly RMQOptions;
    private readonly rmqNestjsConnectService;
    private readonly rmqErrorGlobalService;
    private replyToQueue;
    private extendedOptions;
    private serDes;
    private sendResponseEmitter;
    private logger;
    private isInitialized;
    constructor(RMQOptions: IRMQOptions, rmqNestjsConnectService: RmqNestjsConnectService, rmqErrorGlobalService: RmqErrorGlobalService);
    onModuleInit(): Promise<void>;
    get channel(): Promise<Channel | ConfirmChannel>;
    send<IMessage, IReply>(exchange: string, topic: string, message: IMessage, options?: IPublishOptions): Promise<IReply>;
    notify<IMessage>(exchange: string, topic: string, message: IMessage, options?: Options.Publish): Promise<INotifyReply>;
    sendToQueue<IMessage>(queue: string, content: IMessage, options?: Options.Publish): Promise<boolean>;
    ack(...params: Parameters<Channel['ack']>): ReturnType<Channel['ack']>;
    private listenReplyQueue;
    private replyQueue;
    private initializationCheck;
}
