export declare type Callback = (data?: TData, metadata?: TMetadata) => void; export declare type EventHandler = (data: TEventData, metadata: TEventMetadata, callback: TEventCallback) => void; declare type EventMap = { [k: string]: (...args: any[]) => void; }; export declare class EventManager { private listeners; on: (event: E, listener: Events[E]) => void; off: (event: E, listener: Events[E]) => void; emit: (event: E, ...args: Parameters) => void; removeAllListeners: () => void; hasEventListener: (event: E) => boolean; } export {};