/**
 * 事件中心工具类
 * 提供事件的订阅、取消订阅和触发功能
 */
export type EventCallback<T = any> = (data?: T) => void;
export declare class EventCenter {
    private listeners;
    private listenerIdCounter;
    /**
     * 订阅事件
     * @param event 事件名称
     * @param callback 回调函数
     * @returns 返回取消订阅的函数
     */
    on<T = any>(event: string, callback: EventCallback<T>): () => void;
    /**
     * 订阅事件（只触发一次）
     * @param event 事件名称
     * @param callback 回调函数
     * @returns 返回取消订阅的函数
     */
    once<T = any>(event: string, callback: EventCallback<T>): () => void;
    /**
     * 取消订阅事件
     * @param event 事件名称
     * @param callbackOrId 回调函数或监听器ID
     */
    off(event: string, callbackOrId?: EventCallback | string): void;
    /**
     * 触发事件
     * @param event 事件名称
     * @param data 传递给回调函数的数据
     */
    emit<T = any>(event: string, data?: T): void;
    /**
     * 获取指定事件的监听器数量
     * @param event 事件名称
     * @returns 监听器数量
     */
    getListenerCount(event?: string): number;
    /**
     * 获取所有已注册的事件名称
     * @returns 事件名称数组
     */
    getEventNames(): string[];
    /**
     * 检查是否有指定事件的监听器
     * @param event 事件名称
     * @returns 是否有监听器
     */
    hasListeners(event: string): boolean;
    /**
     * 清除所有事件监听器
     */
    clear(): void;
    /**
     * 清除指定事件的所有监听器
     * @param event 事件名称
     */
    clearEvent(event: string): void;
    /**
     * 生成唯一的监听器ID
     * @returns 监听器ID
     */
    private generateListenerId;
    /**
     * 验证事件名称是否有效
     * @param event 事件名称
     * @returns 是否有效
     */
    private isValidEvent;
    /**
     * 验证回调函数是否有效
     * @param callback 回调函数
     * @returns 是否有效
     */
    private isValidCallback;
}
export declare const eventCenter: EventCenter;
export declare const on: <T = any>(event: string, callback: EventCallback<T>) => () => void;
export declare const once: <T = any>(event: string, callback: EventCallback<T>) => () => void;
export declare const off: (event: string, callbackOrId?: EventCallback | string) => void;
export declare const emit: <T = any>(event: string, data?: T) => void;
export declare const clear: () => void;
export declare const getListenerCount: (event?: string) => number;
export declare const getEventNames: () => string[];
export declare const hasListeners: (event: string) => boolean;
export default eventCenter;
