import { Fn, MaybeNullableRef } from '../typings/internal'; export interface InferEventTarget { addEventListener(event: Events, fn?: any, options?: any): any; removeEventListener(event: Events, fn?: any, options?: any): any; } export type GeneralEventListener = { (evt: E): void; }; export declare function useEventListener(target: Window, event: E, listener: (this: Window, ev: WindowEventMap[E]) => any, options?: boolean | AddEventListenerOptions): Fn; export declare function useEventListener(target: Document, event: E, listener: (this: Document, ev: DocumentEventMap[E]) => any, options?: boolean | AddEventListenerOptions): Fn; export declare function useEventListener(target: MaybeNullableRef, event: E, listener: (this: Window, ev: HTMLElementEventMap[E]) => any, options?: boolean | AddEventListenerOptions): Fn; export declare function useEventListener(target: MaybeNullableRef, event: E, listener: (this: Window, ev: SVGElementEventMap[E]) => any, options?: boolean | AddEventListenerOptions): Fn; export declare function useEventListener(target: MaybeNullableRef, event: string, listener: GeneralEventListener, options?: boolean | AddEventListenerOptions): Fn;