import type { SerwistEvent, SerwistEventMap } from "./SerwistEvent.js";
export type ListenerCallback = (event: SerwistEvent<any>) => any;
/**
 * A minimal `EventTarget` shim.
 * This is necessary because not all browsers support constructable
 * `EventTarget`, so using a real `EventTarget` will error.
 * @private
 */
export declare class SerwistEventTarget {
    private readonly _eventListenerRegistry;
    /**
     * @param type
     * @param listener
     * @private
     */
    addEventListener<K extends keyof SerwistEventMap>(type: K, listener: (event: SerwistEventMap[K]) => any): void;
    /**
     * @param type
     * @param listener
     * @private
     */
    removeEventListener<K extends keyof SerwistEventMap>(type: K, listener: (event: SerwistEventMap[K]) => any): void;
    /**
     * @param event
     * @private
     */
    dispatchEvent(event: SerwistEvent<any>): void;
    /**
     * Returns a Set of listeners associated with the passed event type.
     * If no handlers have been registered, an empty Set is returned.
     *
     * @param type The event type.
     * @returns An array of handler functions.
     * @private
     */
    private _getEventListenersByType;
}
//# sourceMappingURL=SerwistEventTarget.d.ts.map