/**
 * 事件参数基类
 */
export declare class EventArgs {
    /** 事件名称 */
    eventName: string;
    /** 事件发生时间 */
    readonly whenOccurred: Date;
    /** 事件参数 */
    args: Record<string, any>;
    /**
     * 创建一个事件参数实例
     * @param eventName 事件名称，默认为空字符串
     */
    constructor(eventName?: string, args?: Record<string, any>);
}
/**
 * 事件订阅句柄，用于标识和管理订阅
 */
export declare class EventSubscription<T extends EventArgs = EventArgs> {
    private readonly _id;
    private _isActive;
    /**
     * @param _id 订阅ID
     * @param eventName 事件名称
     * @param handler 事件处理函数
     * @param priority 订阅优先级，数字越大优先级越高
     */
    private readonly _eventName;
    private readonly _handler;
    private readonly _priority;
    constructor(eventName: string, handler: (args: T) => void, priority?: number);
    get id(): string;
    get isActive(): boolean;
    get eventName(): string;
    getHandler(): (args: T) => void;
    get priority(): number;
    /** 取消订阅 */
    cancel(): void;
}
import { EventEmitter } from 'events';
/**
 * 事件管理器单例类
 * 继承自Node.js EventEmitter以获得更好的性能和标准API
 */
export declare class EventManager extends EventEmitter {
    private static _instance;
    /** 获取EventManager单例实例 */
    static get instance(): EventManager;
    constructor();
    /**
     * 注册一个事件处理器
     * @param eventName 事件名称
     * @param handler 事件处理函数
     * @returns 订阅句柄
     */
    subscribe<T extends EventArgs = EventArgs>(eventName: string, handler: (args: T) => void | boolean | Promise<boolean>, priority?: number): this;
    /**
     * 注册一个一次性事件处理器
     * @param eventName 事件名称
     * @param handler 事件处理函数
     * @returns 订阅句柄
     */
    subscribeOnce<T extends EventArgs = EventArgs>(eventName: string, handler: (args: T) => void): this;
    /**
     * 取消订阅
     * @param eventName 事件名称
     * @param handler 要取消的事件处理函数
     * @returns 是否成功取消订阅
     */
    unsubscribe<T extends EventArgs = EventArgs>(eventName: string, handler: (args: T) => void): void;
    /**
     * 广播事件
     * @param eventName 事件名称
     * @param args 事件参数
     */
    broadcast<T extends EventArgs = EventArgs>(eventName: string, args: T): Promise<boolean>;
    /**
     * 清理所有订阅
     */
    dispose(): void;
    /** 初始化事件处理器 */
    private _initializeEventHandlers;
}
//# sourceMappingURL=event-manager.d.ts.map