import { Binding } from '../bus/binding'; import { Queue } from '../bus/queue'; import { Exchange } from '../bus/exchange'; import * as AmqpLib from 'amqplib/callback_api'; import { IConnectionFactory, ITopology } from '../../port/connection/connection.factory.interface'; import { IExchangeOptions } from '../../../application/port/exchange.option.interface'; import { IQueueOptions } from '../../../application/port/queue.option.interface'; import { IConnectionOptions } from '../../../application/port/connection.config.inteface'; import { ICustomLogger } from '../../../utils/custom.logger'; import { ICustomEventEmitter } from '../../../utils/custom.event.emitter'; export declare class ConnectionFactoryRabbitMQ implements IConnectionFactory { private readonly _logger; private readonly _emitter; initialized: Promise; isConnected: boolean; private url; private socketOptions; private reconnectStrategy; private _connectedBefore; private _connection; private _retry; private _rebuilding; private _isClosing; private _exchanges; private _queues; private _bindings; constructor(_logger: ICustomLogger, _emitter: ICustomEventEmitter); createConnection(url: any, socketOptions: any, reconnectStrategy: IConnectionOptions): Promise; get connectedBefore(): boolean; get connection(): AmqpLib.Connection; get exchanges(): { [p: string]: Exchange; }; get queues(): { [p: string]: Queue; }; get bindings(): { [p: string]: Binding; }; private rebuildConnection; private tryToConnect; _rebuildAll(err: Error): Promise; close(): Promise; completeConfiguration(): Promise; deleteConfiguration(): Promise; declareExchange(name: string, type?: string, options?: IExchangeOptions): Exchange; declareQueue(name: string, options?: IQueueOptions): Queue; declareTopology(topology: ITopology): Promise; private isEqualOptions; on(event: string | symbol, listener: (...args: any[]) => void): void; }