type Subscriber = (event: T) => void; export type AppEvent = | { type: 'NAVIGATE'; payload: { path: string; params?: Record } } | { type: 'NAVIGATE_BACK' } | { type: 'SHOW_VERIFICATION_MODAL' } | { type: 'VIBRATE'; payload: { type: 'message' | 'group_message' | 'call' } } | { type: 'AUTH_LOGOUT' }; class EventBusClass { private subscribers: Set> = new Set(); emit(event: AppEvent): void { this.subscribers.forEach(subscriber => { try { subscriber(event); } catch (error) { console.error('[EventBus] Subscriber error:', error); } }); } subscribe(subscriber: Subscriber): () => void { this.subscribers.add(subscriber); return () => this.subscribers.delete(subscriber); } } export const eventBus = new EventBusClass();