import { useEffect } from 'react'; type EventHandler = (data: any) => void; class NeuralEventBus { private listeners: Map = new Map(); on(event: string, handler: EventHandler) { if (!this.listeners.has(event)) { this.listeners.set(event, []); } this.listeners.get(event)?.push(handler); } off(event: string, handler: EventHandler) { const handlers = this.listeners.get(event); if (handlers) { this.listeners.set(event, handlers.filter(h => h !== handler)); } } emit(event: string, data: any) { const handlers = this.listeners.get(event); if (handlers) { handlers.forEach(h => h(data)); } } } export const neuralEventBus = new NeuralEventBus(); export const emitNeuralEvent = (event: string, data: any) => { neuralEventBus.emit(event, data); }; export const useNeuralEvent = (event: string, handler: EventHandler) => { useEffect(() => { neuralEventBus.on(event, handler); return () => { neuralEventBus.off(event, handler); }; }, [event, handler]); };