import type { Arrayable, Gettable, GettableOrReffable, Noop } from "../utils/basic.js"; 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; /** * A React Hook that use `EventListener` with ease. * * Register using `addEventListener` on mounted, and `removeEventListener` automatically on unmounted. */ export declare function useEventListener(event: Arrayable, listener: (this: Window, ev: WindowEventMap[E]) => unknown, options?: boolean | AddEventListenerOptions): Noop; export declare function useEventListener(target: Gettable, event: Arrayable, listener: (this: Document, ev: WindowEventMap[E]) => unknown, options?: boolean | AddEventListenerOptions): Noop; export declare function useEventListener(target: Gettable, event: Arrayable, listener: (this: Document, ev: DocumentEventMap[E]) => unknown, options?: boolean | AddEventListenerOptions): Noop; export declare function useEventListener(target: GettableOrReffable, event: Arrayable, listener: (this: HTMLElement, ev: HTMLElementEventMap[E]) => unknown, options?: boolean | AddEventListenerOptions): Noop; export declare function useEventListener(target: GettableOrReffable | null | undefined>, event: Arrayable, listener: GeneralEventListener, options?: boolean | AddEventListenerOptions): Noop; export declare function useEventListener(target: GettableOrReffable, event: Arrayable, listener: GeneralEventListener, options?: boolean | AddEventListenerOptions): Noop;