/** * Returns a NEW array = `existing` followed by every row in `incoming` whose * `id` is not already present. Stable on identity/order of `existing`. Pure. */ export declare function dedupeById(existing: T[], incoming: T[]): T[]; export interface UseInfiniteScrollOptions { /** Fired when the sentinel scrolls into view and loading is enabled. */ onLoadMore: () => void; /** When true, the observer is inert (no more pages, or a load in flight). */ disabled?: boolean; /** Pixels of pre-fetch margin below the viewport. Default 200. */ rootMargin?: number; } export interface InfiniteScrollRefs { rootRef: React.RefObject; sentinelRef: React.RefObject; } /** * IntersectionObserver-backed infinite scroll. Attach `rootRef` to the * scrollable container and `sentinelRef` to a small element at its bottom. The * latest `onLoadMore`/`disabled` are read through a ref so the observer isn't * torn down and rebuilt on every render. */ export declare function useInfiniteScrollSentinel({ onLoadMore, disabled, rootMargin, }: UseInfiniteScrollOptions): InfiniteScrollRefs; //# sourceMappingURL=use-infinite-scroll.d.ts.map