export type EventMap = { [eventName: string]: Event; }; export type Event = { type: T; }; export type Listener> = (e: E) => void; export declare class EventEmitter { private readonly eventListener; constructor(); addEventListener(eventName: EventName, listener: Listener): this; removeEventListener(eventName: EventName, listener: Listener): void; trigger(eventName: EventName, e: Omit & { type?: EventName; }): void; }