import { ChannelWrapper, AmqpConnectionManager } from 'amqp-connection-manager'; import { ConsumeMessage, Channel, Connection, ConfirmChannel, Options } from 'amqplib'; import { MessageHandlerOptions, RabbitMQConfig, RequestOptions, ConsumeOptions } from '../rabbitmq.interfaces'; import { RpcResponse, SubscribeResponse } from './handlerResponses'; export type ConsumerTag = string; export type SubscriberHandler = (msg: T | undefined, rawMessage?: ConsumeMessage, headers?: any) => Promise; export type BatchSubscriberHandler = (msg: (T | undefined)[], rawMessage?: ConsumeMessage[], headers?: any[]) => Promise; export type RpcSubscriberHandler = (msg: T | undefined, rawMessage?: ConsumeMessage, headers?: any) => Promise>; export interface CorrelationMessage { correlationId: string; requestId?: string; message: Record; } export interface SubscriptionResult { consumerTag: ConsumerTag; } export type BaseConsumerHandler = { consumerTag: string; channel: ConfirmChannel; msgOptions: MessageHandlerOptions; }; export type ConsumerHandler = (BaseConsumerHandler & { type: 'subscribe'; handler: SubscriberHandler; }) | (BaseConsumerHandler & { type: 'subscribe-batch'; handler: BatchSubscriberHandler; }) | (BaseConsumerHandler & { type: 'rpc'; handler: RpcSubscriberHandler; }); export declare class AmqpConnection { private readonly messageSubject; private readonly logger; private readonly initialized; private _managedConnection; /** * Will now specify the default managed channel. */ private _managedChannel; private _managedChannels; /** * Will now specify the default channel. */ private _channel; private _channels; private _connection?; private _consumers; private _rpcHandlersByQueue; private _rpcConsumerTagByQueue; private readonly config; private readonly outstandingMessageProcessing; constructor(config: RabbitMQConfig); get channel(): Channel; get connection(): Connection; get managedChannel(): ChannelWrapper; get managedConnection(): AmqpConnectionManager; get configuration(): Required; get channels(): Record; get managedChannels(): Record; get connected(): boolean; init(): Promise; private initCore; private setupInitChannel; private setupQueuesWithBindings; private initDirectReplyQueue; request(requestOptions: RequestOptions): Promise; createSubscriber(handler: SubscriberHandler, msgOptions: MessageHandlerOptions, originalHandlerName: string, consumeOptions?: ConsumeOptions): Promise; createBatchSubscriber(handler: BatchSubscriberHandler, msgOptions: MessageHandlerOptions, consumeOptions?: ConsumeOptions): Promise; private consumerFactory; /** * Wrap a consumer with logic that tracks the outstanding message processing to * be able to wait for them on shutdown. */ private wrapConsumer; private setupSubscriberChannel; private setupBatchSubscriberChannel; private handleBatchedMessages; private findRpcHandler; private validateSharedQueueOptions; createRpc(handler: RpcSubscriberHandler, rpcOptions: MessageHandlerOptions): Promise; setupRpcChannel(handler: RpcSubscriberHandler, rpcOptions: MessageHandlerOptions, channel: ConfirmChannel): Promise; publish(exchange: string, routingKey: string, message: any, options?: Options.Publish): Promise; private deserializeMessage; private setupQueue; private setupManagedChannel; /** * Selects managed channel based on name, if not found uses default. * @param name name of the channel * @returns channel wrapper */ private selectManagedChannel; private registerConsumerForQueue; private unregisterConsumerForQueue; private getConsumer; get consumerTags(): string[]; cancelConsumer(consumerTag: ConsumerTag): Promise; resumeConsumer(consumerTag: ConsumerTag): Promise; close(): Promise; } //# sourceMappingURL=connection.d.ts.map