import { Arrayable, MaybeAccessor, Fn } from '@solidjs-use/shared'; interface InferEventTarget { addEventListener: (event: Events, fn?: any, options?: any) => any; removeEventListener: (event: Events, fn?: any, options?: any) => any; } type WindowEventName = keyof WindowEventMap; type DocumentEventName = keyof DocumentEventMap; type GeneralEventListener = (evt: E) => void; /** * Register using addEventListener on mounted, and removeEventListener automatically on unmounted. * * Overload 1: Omitted Window target * * @see https://solidjs-use.github.io/solidjs-use/core/useEventListener */ declare function useEventListener(event: Arrayable, listener: Arrayable<(this: Window, ev: WindowEventMap[E]) => any>, options?: MaybeAccessor): Fn; /** * Register using addEventListener on mounted, and removeEventListener automatically on unmounted. * * Overload 2: Explicitly Window target * * @see https://solidjs-use.github.io/solidjs-use/core/useEventListener */ declare function useEventListener(target: Window, event: Arrayable, listener: Arrayable<(this: Window, ev: WindowEventMap[E]) => any>, options?: MaybeAccessor): Fn; /** * Register using addEventListener on mounted, and removeEventListener automatically on unmounted. * * Overload 3: Explicitly Document target * * @see https://solidjs-use.github.io/solidjs-use/core/useEventListener */ declare function useEventListener(target: DocumentOrShadowRoot, event: Arrayable, listener: Arrayable<(this: Document, ev: DocumentEventMap[E]) => any>, options?: MaybeAccessor): Fn; /** * Register using addEventListener on mounted, and removeEventListener automatically on unmounted. * * Overload 4: Custom event target with event type infer * * @see https://solidjs-use.github.io/solidjs-use/core/useEventListener */ declare function useEventListener(target: InferEventTarget, event: Arrayable, listener: Arrayable>, options?: MaybeAccessor): Fn; /** * Register using addEventListener on mounted, and removeEventListener automatically on unmounted. * * Overload 5: Custom event target fallback * * @see https://solidjs-use.github.io/solidjs-use/core/useEventListener */ declare function useEventListener(target: MaybeAccessor, event: Arrayable, listener: Arrayable>, options?: MaybeAccessor): Fn; export { DocumentEventName, GeneralEventListener, WindowEventName, useEventListener };