export interface ProtectedEventEmitter { on>(event: T, listener: (event: EventMap[T]) => unknown, context?: unknown): this; once>(event: T, listener: (event: EventMap[T]) => unknown, context?: unknown): this; off>(event: T, listener: (event: EventMap[T]) => unknown, context?: unknown): this; }