import { EventEmitter } from 'events'; export interface PubSubEvents { 'update': (accountId: string, update: { id: string, seq: number, body: any, createdAt: number }) => void; 'update-ephemeral': (accountId: string, update: { type: 'activity', id: string, active: boolean, activeAt: number, thinking: boolean }) => void; } class PubSubService extends EventEmitter { emit(event: K, ...args: Parameters): boolean { return super.emit(event, ...args); } on(event: K, listener: PubSubEvents[K]): this { return super.on(event, listener); } off(event: K, listener: PubSubEvents[K]): this { return super.off(event, listener); } } export const pubsub = new PubSubService();