import type { EventsHandlerType } from './classes'; import type { EventIdProvider, IEvent, IEventBus, IEventHandlerInstantiator } from './interfaces'; export declare class EventBus implements IEventBus { protected eventIdProvider: EventIdProvider; protected instantiator: IEventHandlerInstantiator; private subscriptions; constructor({ eventIdProvider, instantiator, }?: { eventIdProvider?: EventIdProvider; instantiator?: IEventHandlerInstantiator; }); bind(handler: EventsHandlerType, eventId: string): void; publish(event: TEvent): Promise; publishAll(events: TEvent[]): Promise<(false | void[] | undefined)[]>; register(handlers: EventsHandlerType[]): void; private reflectEvents; private registerHandler; }