import { EventEmitter } from "node:events"; import type { LaunchpadEvents } from "./types.js"; type EventKey = Extract; type EventHandler> = (data: TEvents[K]) => void; type AnyEventHandler = >(event: K, data: TEvents[K]) => void; /** * Generic type-safe EventBus built on Node's EventEmitter. * @template TEvents - Mapping of event names to payload types */ export declare class EventBus extends EventEmitter { private _anyHandlers; constructor(); emit>(event: K, data: TEvents[K]): boolean; on>(event: K, handler: EventHandler): this; off>(event: K, handler: EventHandler): this; onAny(handler: AnyEventHandler): this; offAny(handler: AnyEventHandler): this; onPattern(pattern: RegExp, handler: AnyEventHandler): void; once>(event: K, handler: EventHandler): this; removeAllListeners(event?: string): this; listenerCount(event: string): number; } export {}; //# sourceMappingURL=event-bus.d.ts.map