import { tsEntry } from '../entry/entry'; /** * 事件模块 */ export declare module tsEvent { /** * 事件对象 */ class Event extends tsEntry.Entry { private handler; private caller; private _execLimit; get execLimit(): number; private _execCount; get execCount(): number; constructor(id: number, name: string, handler: (event: Event, caller: any, ...args: any[]) => void, caller?: any, limit?: number); destroy(): void; equal(handler: (event: Event, caller: any, ...args: any[]) => void, caller: any): boolean; _dispatch(...args: any[]): Promise; dispatch(...args: any[]): boolean; checkLimit(): boolean; } class EventManager { private _name; get name(): string; set name(value: string); get fullName(): string; private autoIncIdStart; private nameEventsMap; constructor(name: string); has(name: string, handler: (event: Event, caller: any, ...args: any[]) => void, caller: any): boolean; get(name: string, id: number): Event; add(name: string, handler: (event: Event, caller: any, ...args: any[]) => void, caller?: any, limit?: number): Event; del(event: Event): boolean; delById(name: string, id: number): boolean; clear(name: string): boolean; dispatch(name: string, ...args: any[]): void; getStatistics(): string[]; } /** * 添加事件管理实例 * @param mgr EventManager实例 */ function addEventMgr(mgr: EventManager): boolean; /** * 删除事件管理实例 * @param mgr EventManager实例 * @returns 成功:true 失败:false */ function delEventMgr(mgr: EventManager): boolean; /** * 通过名称删除事件管理实例 * @param name EventManager实例名称 * @returns 成功:true 失败:false */ function delEventMgrByName(name: string): boolean; /** * 添加全局事件监听 * @param name 名称 * @param handler 事件处理 * @param caller 调用者(回传参数,可用于解决this指针问题) * @param limit 执行次数(次数达到自动删除,默认-1不限次数) * @returns Event实例 */ function addEventListener(name: string, handler: (event: Event, caller: any, ...args: any[]) => void, caller?: any, limit?: number): Event; /** * 删除全局事件监听 * @param event Event实例 * @returns 成功:true 失败:false */ function delEventListener(event: Event): boolean; /** * 通过唯一标识删除全局事件监听 * @param name 名称 * @param id 唯一标识 * @returns 成功:true 失败:false */ function delEventListenerById(name: string, id: number): boolean; /** * 清理指定名称全局事件监听 * @param name 名称 * @returns 成功:true 失败:false */ function clearEventListener(name: string): boolean; /** * 派发全局事件 * @param name 名称 * @param args 事件参数列表 * @returns */ function dispatchEvent(name: string, ...args: any[]): void; /** * 获取统计信息(全局+EventEntry实例) * @returns ["名称:Req_User_Info 数量:1 执行计数:0", ...] */ function getStatistics(): string[]; /** * 局部事件管理基类 */ class EventEntry extends tsEntry.Entry { private eventMgr; constructor(id?: number, name?: string, typ?: number); /** * 添加事件监听 * @param name 名称 * @param handler 回调 * @param caller 调用者(回传参数,可用于解决this指针问题) * @param limit 执行次数(次数达到自动删除,默认-1不限次数) * @returns Event实例 */ addEventListener(name: string, handler: (event: Event, caller: any, ...args: any[]) => void, caller?: any, limit?: number): tsEvent.Event; /** * 删除事件监听 * @param event Event实例 * @returns 成功:true 失败:false */ delEventListener(event: Event): boolean; /** * 通过唯一标识删除事件监听 * @param name 名称 * @param id 唯一标识 * @returns 成功:true 失败:false */ delEventListenerById(name: string, id: number): boolean; /** * 清理指定名称事件监听 * @param name 名称 * @returns 成功:true 失败:false */ clearEventListener(name: string): boolean; /** * 派发事件 * @param name 名称 * @param args 事件参数列表 * @returns */ dispatchEvent(name: string, ...args: any[]): void; } }