import { EVENT_DESCRIPTION_SYMBOL, $EventOptions, $MutArg, $MutArgEventHandler } from "../event-base/index.js"; import { $EventEmitterMix, $OnceEventOptions, $InnerErrorHandler } from "./$types.js"; export declare class MapEventEmitter implements $EventEmitterMix { /**导出类型 */ TYPE: EMX; private _e; /** * 监听事件 * 在这里重复的事件不会被重复监听 * 原因时我们不支持context对象的绑定,一个函数被重复监听,往往是绑定着不同的this对象,使得上下文的值不一样 * 这里不允许自定义context对象。就意味着函数被重复监听已经是没有必要的事情 * 如果由类似的需要,需要执行生成一个闭包,这也将重新生成一个新的函数 * @param eventname * @param handler * @param taskname */ on(eventname: K, handler: $MutArgEventHandler, opts?: $EventOptions): void; on(eventname: K, handler: $MutArgEventHandler, opts?: $EventOptions): void; /** on函数的具体实现 */ private _on; /**一次性事件监听 */ once(eventname: K, handler: $MutArgEventHandler, opts?: $OnceEventOptions): unknown; once(eventname: K, handler: $MutArgEventHandler, opts?: $OnceEventOptions): unknown; /** * 移除指定处理函数或者选定的事件集合 * @param eventname * @param handler */ off(eventname: K, handler?: $MutArgEventHandler): boolean; off(eventname: K, handler?: $MutArgEventHandler): boolean; private _off; get [EVENT_DESCRIPTION_SYMBOL](): string; emit(eventname: K, ...data: $MutArg): void; emit(eventname: K, ...data: $MutArg): void; protected _emit(eventname: EN, args: $MutArg): void; /** * 触发内部的异常处理函数 * @param err * @param han * @param name */ protected _emitErrorHanlder(err: unknown, eventname: K, args: $MutArg): void; /**是否由过自定义异常处理 */ private _hasEmitErrorHandlerSet?; private get _emitErrorHandlerSet(); /** * 自定义函数执行异常处理器 * @param errorHandler */ onError(errorHandler: $InnerErrorHandler, taskname?: string): void; /** * 移除自定义函数的执行异常处理器 * @param errorHandler */ offError(errorHandler?: $InnerErrorHandler): boolean; /** * 移除所有的事件 */ clear(opts?: { ignoreCustomErrorHanlder?: boolean; }): void; get removeAllListeners(): (opts?: { ignoreCustomErrorHanlder?: boolean | undefined; }) => void; get addListener(): { (eventname: K, handler: $MutArgEventHandler, opts?: $EventOptions | undefined): void; (eventname: K_1, handler: $MutArgEventHandler, opts?: $EventOptions | undefined): void; }; get removeListener(): { (eventname: K, handler?: $MutArgEventHandler | undefined): boolean; (eventname: K_1, handler?: $MutArgEventHandler | undefined): boolean; }; }