export declare class SafeEventTarget> extends EventTarget { addEventListener(type: K, callback: $SafeEventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined): void; addEventListener(type: K, callback: $SafeEventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined): void; addEventListener(type: K, listener: $SafeEventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined): void; removeEventListener(type: K, callback: $SafeEventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions | undefined): void; removeEventListener(type: K, callback: $SafeEventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions | undefined): void; removeEventListener(type: K, callback: $SafeEventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions | undefined): void; dispatchEvent(event: T[keyof T]): boolean; } export interface $SafeEventListener { (evt: E): void; } export interface $SafeEventListenerObject { handleEvent(object: E): void; } export type $SafeEventListenerOrEventListenerObject = $SafeEventListener | $SafeEventListenerObject; export declare class SafeMessageEvent extends MessageEvent { constructor(type: T, eventInitDict: MessageEventInit); } export declare class SafeEvent extends Event { constructor(type: T, eventInitDict?: EventInit); } export declare class SafeStateEvent extends Event { readonly state: S; constructor(type: T, eventInitDict: EventInit & { state: S; }); } //# sourceMappingURL=SafeEventTarget.d.ts.map