/// <reference path="../globals.d.ts" />
import type DOMNodeReference from "./DOMNodeReference.d.ts";
declare type EventType = string;
declare type Handler = (this: DOMNodeReference, ...args: any[]) => void;
/********/ /********/ export default class EventManager {
    private readonly events;
    private readonly listeners;
    private readonly dependencyHandlers;
    private observers;
    private boundListeners;
    constructor();
    /********/ dispatchDependencyHandlers(): void;
    /********/ registerDependent(dependency: DOMNodeReference, handler: Handler): "success" | Error;
    /********/ registerEvent(event: EventType, handler: Handler): "success" | Error;
    /********/ registerListener(event: EventType, listener: DOMNodeReference): "success" | Error;
    /********/ emit(eventType: EventType, ...args: any[]): void;
    /********/ stopListening(listener: DOMNodeReference): void;
    /********/ registerObserver(observer: MutationObserver | ResizeObserver, observerOptions: {
        nodeToObserve: Element;
        options: Partial<ResizeObserverOptions> | Partial<MutationObserverInit>;
    }): void;
    /********/ registerDOMEventListener(element: Element, eventType: keyof HTMLElementEventMap, handler: (e: Event) => unknown): void;
    /********/ destroy(): void;
}
export {};
