export interface Emitter { on: (event: string, callback: EventListener, scope?: EventScope) => Emitter; off: (event: string, callback: EventListener, scope?: EventScope) => Emitter; getListeners: (event: string, scope?: EventScope) => EventListener[]; emit: (eventName: string, eventInstance: Event, scope?: EventScope) => Emitter; } export declare enum EventScope { GLOBAL = "global", LOCAL = "local" } export interface Event { setName(name: string): Event; setData(data: any): Event; getName(): string; getData(): any; } export interface EventListener { (event: Event): void; }