import type { EntityMetadata } from '../typings.js'; import type { EventArgs, EventSubscriber, FlushEventArgs, TransactionEventArgs } from './EventSubscriber.js'; import { EventType, type TransactionEventType } from '../enums.js'; /** Manages event subscribers and dispatches entity/flush/transaction lifecycle events. */ export declare class EventManager { #private; constructor(subscribers: Iterable); /** Registers an event subscriber and indexes its subscribed entities and event types. */ registerSubscriber(subscriber: EventSubscriber): void; /** Returns the set of all registered event subscribers. */ getSubscribers(): Set; dispatchEvent(event: TransactionEventType, args: TransactionEventArgs, meta?: EntityMetadata): unknown; dispatchEvent(event: EventType.onInit, args: Partial>, meta?: EntityMetadata): unknown; dispatchEvent(event: EventType, args: Partial | FlushEventArgs>, meta?: EntityMetadata): Promise; /** Checks whether there are any listeners (hooks or subscribers) for the given event type and entity. */ hasListeners(event: EventType, meta: EntityMetadata): boolean; /** Creates a new EventManager with the same set of subscribers. */ clone(): EventManager; private getSubscribedEntities; }