import type { TypedEventTarget } from '../events';
/** Key to store listeners on the {@link SyntheticEventTarget} instance*/
declare const LISTENERS: unique symbol;
/**
 * Synthetic implementation of EventTarget
 * Replicates behavior of native event
 * Doesn't give explicit access to callback storage
 */
export declare class SyntheticEventTarget<T extends Event = Event> implements TypedEventTarget<T> {
    static DEFAULT_EVENT: string;
    private readonly [LISTENERS];
    protected getEventListeners(): EventListenerOrEventListenerObject[];
    protected getEventListeners(type: T['type']): EventListenerOrEventListenerObject[];
    hasEventListener(type?: string): boolean;
    addEventListener(callback: EventListenerOrEventListenerObject): void;
    addEventListener(type: T['type'], callback: EventListenerOrEventListenerObject): void;
    removeEventListener(callback: EventListenerOrEventListenerObject): void;
    removeEventListener(type: T['type'], callback: EventListenerOrEventListenerObject): void;
    dispatchEvent(e: T): boolean;
}
export {};
