import * as amqp from 'amqplib'; import { AmqpChannelPoolService } from './amqp-channel-pool-service'; import { Event, EventHandler, SubscriptionOptions } from './event-subscriber'; export declare type EventHook = (obj: any) => Promise; export declare enum EventHookType { EVENT = 0, ERROR = 1 } export interface IEventConsumerInfo { channel: amqp.Channel; consumerTag: string; queue: string; } export declare class EventService { private static EXCHANGE_NAME; private channelPool; private consumerChannelPool; private roundRobinQ; private fanoutQ; private subscribers; private serviceName; private hooks; private purging; private consumerInfosMap; private ignoreEventLogRegexp; constructor(serviceName: string); initialize(channelPool: AmqpChannelPoolService, consumerChannelPool?: AmqpChannelPoolService): Promise; startConsume(): Promise; purge(): Promise; sigInfo(): Promise; subscribeEvent, U>(eventClass: new (args: U) => T, handler: EventHandler, options?: SubscriptionOptions): Promise; subscribePattern(pattern: string, handler: EventHandler>, options?: SubscriptionOptions): Promise; publishEvent, U>(exchange: string, event: T): Promise; publishEvent, U>(event: T): Promise; registerHook(type: EventHookType, hook: EventHook): void; private getOptions; private registerConsumer; private sendErrorLog; private dohook; private handleMessage; private subscribe; private _publish; private sendStatusJsonEvent; private shutdown; }