/**
 * Minimal typed pub/sub emitter used by `FloatingContext.events`.
 * Ported verbatim from the React source — no framework coupling, just a
 * topic-keyed `Map<string, Set<listener>>`.
 */
export function createEventEmitter() {
  // biome-ignore lint/suspicious/noExplicitAny: emitter payloads are type-erased.
  const map = new Map();
  return {
    emit(event, data) {
      map.get(event)?.forEach(listener => {
        listener(data);
      });
    },
    on(event, listener) {
      if (!map.has(event)) {
        map.set(event, new Set());
      }
      // biome-ignore lint/style/noNonNullAssertion: just set it above.
      map.get(event).add(listener);
    },
    off(event, listener) {
      map.get(event)?.delete(listener);
    }
  };
}
//# sourceMappingURL=create-event-emitter.jsx.map
