interface EventCallback { (...args: any[]): any; } declare class EventBus { private listeners; on(eventName: E, callback: EventCallback): void; emit(eventName: E, data?: T): void; } declare function createEventBus(): EventBus; export { createEventBus };