import { HTMLStencilElement } from '../../stencil-public-runtime';
import { Subject } from './signal';
export type ListenerFn = () => void;
export declare abstract class ListenerAbstract<TListener = ListenerFn, TData = undefined> extends Subject<TListener, TData> {
    el?: HTMLElement | HTMLStencilElement | Window | Document;
    connect(el?: HTMLElement | HTMLStencilElement | Window | Document): void;
    disconnect(): void;
    add(listener: TListener): void;
    remove(listener: TListener): void;
}
