import { Type } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { IEvent, IEventHandler } from '../interfaces'; export type EventHandlerType = Type>; export declare class EventBus { private readonly moduleRef; private readonly logger; private readonly handlers; constructor(moduleRef: ModuleRef); execute(event: T): Promise; bind(handler: IEventHandler, id: string): void; register(handlers?: EventHandlerType[]): void; protected registerHandler(handler: EventHandlerType): void; private getEventId; private reflectEventId; }