import EventEmitter from './EventEmitter';

interface MyEvents {
  'user:login': { userId: string; email: string };
  'user:logout': { userId: string };
  'message:send': { text: string; timestamp: number };
}

const emitter = new EventEmitter<MyEvents>();

emitter.on('user:login', (data) => {
  console.log(`User ${data.userId} logged in with email ${data.email}`);
});

emitter.once('user:logout', (data) => {
  console.log(`User ${data.userId} logged out`);
});

emitter.emit('user:login', { userId: 'user123', email: '[email protected]' });
emitter.emit('message:send', { text: 'Hello, world!', timestamp: Date.now() });