import { EventEmitter } from 'node:events'; type EventsMap = Record void>; type EventNames = keyof Map & (string | symbol); export type EventParams> = Parameters; export interface TypedEventBroadcaster { emit>(ev: Ev, ...args: EventParams): boolean; } export declare abstract class TypedEventEmitter extends EventEmitter implements TypedEventBroadcaster { on>(eventName: EventName, listener: ListenEvents[EventName]): this; once>(eventName: EventName, listener: ListenEvents[EventName]): this; emit>(eventName: EventName, ...args: EventParams): boolean; listeners>(event: EventName): ListenEvents[EventName][]; } export {};