import { $MutArgEventHandler, $EventOptions, $MutArg } from "../../event-base/$types.js"; import { $EventEmitter, $EventMap } from "../../event-map_emitter/$types.js"; import { EasyMap } from "../../extends-map/index.js"; export declare class EventsMap extends EasyMap { constructor(entries?: ReadonlyArray | null); add(key: K, hanlder: V): void; remove(key: K, hanlder: V): boolean; } export declare function EventMapIsolation(eventEmitter: E): E; /** * 事件绑定隔离器 * 在使用事件清除的时候(`off`,`clear`),能之清理有经过隔离器来进行绑定的事件 */ export declare class EventCleanerIsolation implements $EventEmitter { private eventEmitter; constructor(eventEmitter: $EventEmitter); readonly BINDED_EVENTS_MAP: EventsMap>; on(eventname: K, handler: $MutArgEventHandler, opts?: $EventOptions): this; off(eventname: K, handler: $MutArgEventHandler): this; emit(eventname: K, ...data: $MutArg): this; once(eventname: K, handler: $MutArgEventHandler, opts?: $EventOptions): this; removeAllListeners(): this; get clear(): () => this; get addListener(): (eventname: K, handler: $MutArgEventHandler, opts?: $EventOptions | undefined) => this; get removeListener(): (eventname: K, handler: $MutArgEventHandler) => this; /**导出类型 */ TYPE: T; } /** * 事件隔离绑定器 * 针对`EventTarget`类型 */ export declare class EventTargetCleanerIsolation implements EventTarget { private eventTarget; constructor(eventTarget: ET); readonly BINDED_EVENTS_MAP: EventsMap; addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void; dispatchEvent(event: Event): boolean; removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void; clearAll(): this; }