import * as amqp from 'amqplib'; import AbstractBrokerService from './abstract-broker-service'; export default class MessageBrokerService extends AbstractBrokerService { private static EXCHANGE_NAME; private roundRobinEventQ; private fanoutEventQ; private consumerInfos; private handlers; constructor(connection: amqp.Connection, serviceName: string); initialize(): Promise; startConsume(): Promise; purge(): Promise; subscribe(pattern: string, handler?: Handler): Promise; unsubscribe(pattern: string): Promise; subscribeFanout(pattern: string, handler?: Handler): Promise; unsubscribeFanout(pattern: string): Promise; publish(key: string, msg: T): Promise; private checkInitialized; private onMessage; private matcher; private consumeQueues; private cancelConsumes; } export interface Handler { (msg: any, routingKey: string): void; }