/**
 * EventBus - Global event bus singleton and convenience functions
 *
 * Provides centralized event management for the application.
 */
import type { BaseEvent, AllEvents, ApplicationEvents } from './types.js';
import { TypedEventEmitter } from './typed-emitter.js';
/**
 * EventBus - A global event bus for application-wide events
 */
export declare class EventBus<TEvents extends Record<string, BaseEvent> = Record<string, BaseEvent>> extends TypedEventEmitter<TEvents> {
    private static instance;
    /**
     * Get the singleton instance
     */
    static getInstance<T extends Record<string, BaseEvent> = Record<string, BaseEvent>>(): EventBus<T>;
    /**
     * Reset the singleton instance (mainly for testing)
     */
    static resetInstance(): void;
}
/**
 * Get the global typed event bus with all events
 */
export declare function getGlobalEventBus(): EventBus<AllEvents>;
export declare function getEventBus(): EventBus<ApplicationEvents>;
export declare function resetEventBus(): void;
