/**
 * How long the scroller must be quiet before a settle is assumed. Long enough
 * to outlast the browser's own snap animation (~150-300ms after the finger
 * lifts), or a wheel would commit to whichever option it was passing rather
 * than the one it settles on.
 */
export declare const SCROLL_QUIET_MS = 220;
/** What {@link useScrollSettle} reports back about the scroller's state. */
export type ScrollSettleState = {
    /**
     * False from the first touch until the scroller has genuinely stopped —
     * momentum included. Read it before repositioning the scroller: doing that
     * mid-flight fights the platform and, on iOS, restarts the cycle described
     * in the file header.
     */
    isAtRestRef: React.RefObject<boolean>;
};
/**
 * Run `onSettle` when `ref`'s element stops scrolling.
 *
 * @param ref - the scroll container
 * @param onSettle - called with the settled element; may change every render
 * @param isEnabled - skip attaching while false (e.g. a hidden panel)
 */
export declare function useScrollSettle(ref: React.RefObject<HTMLElement | null>, onSettle: (element: HTMLElement) => void, isEnabled?: boolean): ScrollSettleState;
//# sourceMappingURL=useScrollSettle.d.ts.map