import EventHandlers from "./EventHandlers.js"; import IEventContainer from "./IEventContainer.js"; export type DefaultHandlers = { remove: () => void; }; export type WithDefaultHandlers = E & DefaultHandlers; export default class EventContainer implements IEventContainer> { private eventHandlers; private bindings; 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=EventContainer.d.ts.map