import type { EventDispatcherOptions } from './dispatcher-options.js'; import type { Event } from './types.js'; import { type EventConstructor, type ListenerHandler } from './types.js'; export declare class EventDispatcher { private readonly listeners; private readonly container?; private readonly eventRegistry?; private readonly listenerRegistry?; private readonly queue?; private queueDefaults; private onDispatched?; constructor(options?: EventDispatcherOptions); listen(event: EventConstructor, handler: ListenerHandler): this; listenMany(event: EventConstructor, handlers: ListenerHandler[]): this; hasListeners(event: EventConstructor | Event): boolean; dispatch(event: TEvent): Promise; onAfterDispatch(callback: (event: Event) => Promise): this; dispatchUntil(event: TEvent, predicate: (event: TEvent) => boolean): Promise; forget(event: EventConstructor): this; flush(): this; setQueueDefaults(defaults: EventDispatcherOptions['queueDefaults']): this; private invokeHandler; private queueListener; private resolveListener; private isListenerCallback; private isListenerClass; } //# sourceMappingURL=event-dispatcher.d.ts.map