export declare namespace symbols {
    const proxy: unique symbol;
    const listeners: unique symbol;
}
interface Target {
    readonly element: Element & {
        readonly [symbols.proxy]?: Target;
    };
    readonly [symbols.listeners]?: Listeners;
}
export declare class Listeners {
    private readonly element;
    static of(target: Target): Listeners | undefined;
    constructor(element: Element);
    get mutation(): boolean;
    get connection(): boolean;
    get disconnection(): boolean;
    haveConnectionListener(): boolean;
    private readonly targets;
    add(target: Target): void;
    del(target: Target): void;
    dispatchMutateEvent(): void;
    dispatchConnectEvent(targets?: readonly Target[]): void;
    dispatchDisconnectEvent(targets?: readonly Target[]): void;
}
export {};
