import * as _solidjs_use_shared_solid_to_vue from '@solidjs-use/shared/solid-to-vue'; import * as solid_js from 'solid-js'; import { MaybeAccessor } from '@solidjs-use/shared'; interface UseScrollOptions { /** * Throttle time for scroll event, it’s disabled by default. * * @default 0 */ throttle?: number; /** * The check time when scrolling ends. * This configuration will be setting to (throttle + idle) when the `throttle` is configured. * * @default 200 */ idle?: number; /** * Offset arrived states by x pixels * */ offset?: { left?: number; right?: number; top?: number; bottom?: number; }; /** * Trigger it when scrolling. * */ onScroll?: (e: Event) => void; /** * Trigger it when scrolling ends. * */ onStop?: (e: Event) => void; /** * Listener options for scroll event. * * @default {capture: false, passive: true} */ eventListenerOptions?: boolean | AddEventListenerOptions; /** * Optionally specify a scroll behavior of `auto` (default, not smooth scrolling) or * `smooth` (for smooth scrolling) which takes effect when changing the `x` or `y` Signals. * * @default 'auto' */ behavior?: MaybeAccessor; } /** * Reactive scroll. * * @see https://solidjs-use.github.io/solidjs-use/core/useScroll */ declare function useScroll(element: MaybeAccessor, options?: UseScrollOptions): { x: solid_js.Accessor; setX: _solidjs_use_shared_solid_to_vue.ComputedSetter; y: solid_js.Accessor; setY: _solidjs_use_shared_solid_to_vue.ComputedSetter; isScrolling: solid_js.Accessor; arrivedState: { left: boolean; right: boolean; top: boolean; bottom: boolean; }; directions: { left: boolean; right: boolean; top: boolean; bottom: boolean; }; measure(): void; }; type UseScrollReturn = ReturnType; export { UseScrollOptions, UseScrollReturn, useScroll };