export class Event> { on(type: K, fn: { (data: D[K]): void }, context?: any, once?: boolean) off(type: K, fn: { (data: D[K]): void }, context?: any) hasEvents(type: K, fn: { (data: D[K]): void }, context?: any) clearEvents(type: K) emit(type: K, data: any) }