import { Logger } from '@nestjs/common/services/logger.service'; import { EventEmitter } from 'events'; import { Observable, ReplaySubject } from 'rxjs'; import { RmqEvents, RmqStatus } from '../events/rmq.events'; 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: Required['options']; protected readonly logger: Logger; protected connection$: ReplaySubject; protected connectionPromise: Promise; protected client: AmqpConnectionManager | null; protected channel: ChannelWrapper | null; protected pendingEventListeners: Array<{ event: keyof RmqEvents; callback: RmqEvents[keyof RmqEvents]; }>; protected isInitialConnect: boolean; protected responseEmitter: EventEmitter; protected queue: string; protected queueOptions: Record; protected replyQueue: string; protected noAssert: boolean; constructor(options: Required['options']); close(): Promise; connect(): Promise; createChannel(): Promise; createClient(): AmqpConnectionManager; mergeDisconnectEvent(instance: any, source$: Observable): Observable; convertConnectionToPromise(): Promise; setupChannel(channel: Channel, resolve: Function): Promise; consumeChannel(channel: Channel): Promise; registerErrorListener(client: AmqpConnectionManager): void; registerDisconnectListener(client: AmqpConnectionManager): void; private registerConnectListener; on(event: EventKey, callback: EventCallback): void; unwrap(): T; handleMessage(packet: unknown, callback: (packet: WritePacket) => any): Promise; handleMessage(packet: unknown, options: Record, callback: (packet: WritePacket) => any): Promise; 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 {};