web-asr-core
Version:
WebASR Core - Browser-based speech processing with VAD, WakeWord and Whisper - Unified all-in-one version
60 lines • 1.85 kB
TypeScript
/**
* EventEmitter - 基礎事件發射器類別
*
* 提供類型安全的事件訂閱和發射功能
* 支援 on、once、off 方法和鏈式調用
*/
export declare class EventEmitter<T extends Record<string, any>> {
private events;
constructor();
/**
* 訂閱事件
* @param event 事件名稱
* @param handler 事件處理函數
* @returns this 用於鏈式調用
*/
on<K extends keyof T>(event: K, handler: (data: T[K]) => void): this;
/**
* 訂閱事件(只觸發一次)
* @param event 事件名稱
* @param handler 事件處理函數
* @returns this 用於鏈式調用
*/
once<K extends keyof T>(event: K, handler: (data: T[K]) => void): this;
/**
* 取消訂閱事件
* @param event 事件名稱
* @param handler 事件處理函數(可選,不提供則移除所有處理函數)
* @returns this 用於鏈式調用
*/
off<K extends keyof T>(event: K, handler?: (data: T[K]) => void): this;
/**
* 發射事件
* @param event 事件名稱
* @param data 事件資料
* @returns this 用於鏈式調用
*/
emit<K extends keyof T>(event: K, data: T[K]): this;
/**
* 移除所有事件監聽器
* @returns this 用於鏈式調用
*/
removeAllListeners(): this;
/**
* 獲取事件的監聽器數量
* @param event 事件名稱
* @returns 監聽器數量
*/
listenerCount<K extends keyof T>(event: K): number;
/**
* 獲取所有事件名稱
* @returns 事件名稱陣列
*/
eventNames(): (keyof T)[];
}
/**
* 創建 EventEmitter 實例的輔助函數
*/
export declare function createEventEmitter<T extends Record<string, any>>(): EventEmitter<T>;
export default EventEmitter;
//# sourceMappingURL=EventEmitter.d.ts.map