import { DefaultHandlers, WithDefaultHandlers } from "../event/EventContainer.js"; import EventHandlers from "../event/EventHandlers.js"; import IEventContainer from "../event/IEventContainer.js"; import Node from "./Node.js"; export default abstract class EventNode, E extends EventHandlers> extends Node implements IEventContainer> { private readonly eventContainer; on(eventName: K, eventHandler: E[K]): this; on(eventName: K, eventHandler: DefaultHandlers[K]): this; off(eventName: K, eventHandler?: E[K]): this; off(eventName: K, eventHandler?: DefaultHandlers[K]): this; protected hasEvent(eventName: K): boolean; protected hasEvent(eventName: K): boolean; protected emit(eventName: K, ...args: Parameters): Promise[]>; protected emit(eventName: K, ...args: Parameters): Promise[]>; bind(target: IEventContainer, eventName: K, eventHandler: E[K]): this; bind(target: IEventContainer, eventName: K, eventHandler: DefaultHandlers[K]): this; remove(): void; } //# sourceMappingURL=EventNode.d.ts.map