import { MutableRefObject, RefObject } from 'react';
interface UseIntersectionArgs {
    onIntersection?: (index: number) => void;
    init?: IntersectionObserverInit;
}
/**
 * Uses the Intersection Observer API to track intersection of a DOM element with the viewport.
 * Exposes a callback on intersection that is useful for arrays of refs and returns [isIntersecting, index]
 * for most other use cases
 *
 * @template T - The type of the observed DOM element.
 * @param {React.RefObject<T>[] | React.MutableRefObject<T>} refs - The ref(s) to the observed DOM element(s).
 * @param {UseIntersectionArgs} [utils] - Additional options for the useIntersection hook.
 * @param {IntersectionObserverInit} [utils.init] - Options to customize the Intersection Observer.
 * @param {(index: number) => void} [utils.onIntersection] - Callback function to execute when intersection occurs.
 * @returns {[boolean, number | null]} — A tuple containing the boolean value indicating intersection status
 * and the index of the intersecting element (if applicable).
 */
export declare const useIntersection: <T extends HTMLElement>(refs: MutableRefObject<T> | RefObject<T>[], { init, ...utils }?: UseIntersectionArgs) => [boolean, number | null];
export {};
