import { ScrollDestination, AnimateScrollOptions, ScrollHandle, Edge, ScrollToElementOptions, ScrollState, DragScrollOptions, RestoreScrollOptions } from './core.js'; export { Axis, Easing, ScrollAlign, ScrollAnimation, ScrollMetrics, ScrollResult, ScrollTarget, StickToBottom, animateScroll, cancelScroll, cubicBezier, dragScroll, easings, findScrollParent, isScrollable, lockScroll, observeActiveSection, observeScroll, readScroll, readSnapPositions, restoreScroll, scrollBy, scrollToEdge, scrollToElement, stickToBottom } from './core.js'; import { RefObject } from 'react'; type ElementTarget = RefObject | 'window'; interface ScrollActions { scrollTo(position: ScrollDestination, options?: AnimateScrollOptions): ScrollHandle; scrollBy(delta: ScrollDestination, options?: AnimateScrollOptions): ScrollHandle; scrollToEdge(edge: Edge, options?: AnimateScrollOptions): ScrollHandle; scrollToElement(element: HTMLElement | RefObject, options?: ScrollToElementOptions): ScrollHandle; cancel(): void; } declare function useScroll(target: ElementTarget, options?: AnimateScrollOptions): ScrollActions; declare function useScrollState(target: ElementTarget): ScrollState; declare function useScrollState(target: ElementTarget, select: (state: ScrollState) => T): T; declare function useScrollLock(active: boolean, { allow }?: { allow?: Array>; }): void; declare function useDragScroll(ref: RefObject, { axis, mouse }?: DragScrollOptions): void; type Section = RefObject | string; declare function useScrollSpy(sections: Section[], { root, offset }?: { root?: RefObject; offset?: number; }): number; interface InView { inView: boolean; entry: IntersectionObserverEntry | null; } interface InViewOptions { root?: RefObject; rootMargin?: string; threshold?: number | number[]; once?: boolean; } declare function useInView(ref: RefObject, { root, rootMargin, threshold, once }?: InViewOptions): InView; declare function useScrollRestoration(target: ElementTarget, key: string, { storage, timeout }?: RestoreScrollOptions): void; interface StickToBottomState { isAtBottom: boolean; scrollToBottom(options?: AnimateScrollOptions): ScrollHandle; } declare function useStickToBottom(target: RefObject): StickToBottomState; export { AnimateScrollOptions, DragScrollOptions, Edge, type InView, type InViewOptions, RestoreScrollOptions, type ScrollActions, ScrollDestination, ScrollHandle, ScrollState, ScrollToElementOptions, type StickToBottomState, useDragScroll, useInView, useScroll, useScrollLock, useScrollRestoration, useScrollSpy, useScrollState, useStickToBottom };