export declare function isEventTarget(value: any): value is EventTarget; declare const _parent: unique symbol; declare const _listeners: unique symbol; declare const _delegates: unique symbol; declare const _dispatchEventOnSelf: unique symbol; interface EventListenerRecord { type: string; listener: EventListenerOrEventListenerObject; callback: EventListener; options: AddEventListenerOptions; } export declare class CustomEventTarget = any> implements EventTarget { static dispatchEventOnSelf: typeof _dispatchEventOnSelf; [_parent]: TParent | null; [_listeners]: Array; [_delegates]: Set; constructor(parent?: TParent | null); addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void; dispatchEvent(ev: Event): boolean; [_dispatchEventOnSelf](_ev: Event): void; } export declare function addEventTargetDelegates(target: T, delegates: Array, include?: (target1: T) => boolean): void; export declare function removeEventTargetDelegates(target: T, delegates: Array, include?: (target1: T) => boolean): void; export declare function clearEventListeners(target: CustomEventTarget): void; export {};