///
///
import { Logger } from '@nestjs/common/services/logger.service';
import { EventEmitter } from 'events';
import { Observable, ReplaySubject } from 'rxjs';
import { RmqUrl } from '../external/rmq-url.interface';
import { ReadPacket, RmqOptions, WritePacket } from '../interfaces';
import { ClientProxy } from './client-proxy';
type Channel = any;
type ChannelWrapper = any;
type AmqpConnectionManager = any;
/**
* @publicApi
*/
export declare class ClientRMQ extends ClientProxy {
protected readonly options: RmqOptions['options'];
protected readonly logger: Logger;
protected connection$: ReplaySubject;
protected connection: Promise;
protected client: AmqpConnectionManager;
protected channel: ChannelWrapper;
protected urls: string[] | RmqUrl[];
protected queue: string;
protected queueOptions: Record;
protected responseEmitter: EventEmitter;
protected replyQueue: string;
protected persistent: boolean;
protected noAssert: boolean;
constructor(options: RmqOptions['options']);
close(): void;
connect(): Promise;
createChannel(): Promise;
createClient(): AmqpConnectionManager;
mergeDisconnectEvent(instance: any, source$: Observable): Observable;
convertConnectionToPromise(): Promise;
setupChannel(channel: Channel, resolve: Function): Promise;
consumeChannel(channel: Channel): Promise;
handleError(client: AmqpConnectionManager): void;
handleDisconnectError(client: AmqpConnectionManager): void;
handleMessage(packet: unknown, callback: (packet: WritePacket) => any): any;
handleMessage(packet: unknown, options: Record, callback: (packet: WritePacket) => any): any;
protected publish(message: ReadPacket, callback: (packet: WritePacket) => any): () => void;
protected dispatchEvent(packet: ReadPacket): Promise;
protected initializeSerializer(options: RmqOptions['options']): void;
protected mergeHeaders(requestHeaders?: Record): Record | undefined;
protected parseMessageContent(content: Buffer): any;
}
export {};