import { EVENT_DESCRIPTION_SYMBOL, $EventOptions } from "../event-base/index.js"; import { $EventInOutMap, $QueneEventEmitter, $InOutEventHandler, $InnerErrorInOutHandler } from "./$types.js"; /**一个极简的事件管理模块 */ export declare class QueneEventEmitter implements $QueneEventEmitter { TYPE: EM; private _e; /** * 增加监听事件 * @param eventname 事件名 * @param handler 处理函数 */ on(eventname: K, handler: $InOutEventHandler, opts?: $EventOptions): void; /**一次性事件监听 */ once(eventname: K, handler: $InOutEventHandler, opts?: Omit<$EventOptions, "once">): void; /** * 判断事件是否被监听 * @param eventname 事件名 * @param handler 处理函数 */ has(eventname: K, handler?: $InOutEventHandler): boolean; /** * 取消事件监听 * @param eventname 事件名 * @param handler 处理函数 */ off(eventname: K, handler: $InOutEventHandler): boolean; get [EVENT_DESCRIPTION_SYMBOL](): string; /**触发事件监听 */ emit(eventname: K, data: EM[K]["in"]): EM[K]["out"] | Promise | undefined; emitToAsyncGenerator(eventname: K, data: EM[K]["in"]): AsyncGenerator, unknown>; clear(opts?: { ignoreCustomErrorHanlder?: boolean; }): void; get removeAllListeners(): (opts?: { ignoreCustomErrorHanlder?: boolean | undefined; }) => void; get addListener(): (eventname: K, handler: $InOutEventHandler, opts?: $EventOptions) => void; get removeListener(): (eventname: K, handler: $InOutEventHandler) => boolean; /** * 触发内部的异常处理函数 * @param err * @param han * @param name */ protected _emitErrorHanlder(err: unknown, eventname: K, arg: EM[K]["in"]): void; /**是否由过自定义异常处理 */ private _hasEmitErrorHandlerSet?; private get _emitErrorHandlerSet(); /** * 自定义函数执行异常处理器 * @param errorHandler */ onError(errorHandler: $InnerErrorInOutHandler, taskname?: string): void; /** * 移除自定义函数的执行异常处理器 * @param errorHandler */ offError(errorHandler?: $InnerErrorInOutHandler): boolean; }