export interface UseAutoScrollReturn {
    /** Attach to the scrollable container. */
    readonly scrollRef: React.RefObject<HTMLDivElement | null>;
    /** Attach to a zero-height div as the last child of the scroll container. */
    readonly sentinelRef: React.RefObject<HTMLDivElement | null>;
    /** Attach to a wrapper div around the thread content (ResizeObserver target). */
    readonly contentRef: React.RefObject<HTMLDivElement | null>;
    /** True when the thread auto-scrolls to follow new content. */
    readonly isFollowing: boolean;
    /** Scroll to the latest content and re-engage follow mode. */
    readonly jumpToLatest: () => void;
}
/**
 * Two-state auto-scroll state machine for chat threads.
 *
 * **Following** — content is pinned to the bottom; new content
 * (streaming tokens, new messages, tool panel expansion) triggers a
 * `requestAnimationFrame`-batched scroll-to-bottom.
 *
 * **Disengaged** — the user scrolled away from the bottom; no
 * automatic scrolling occurs. Call {@link UseAutoScrollReturn.jumpToLatest}
 * to re-engage.
 *
 * State transitions are driven by an `IntersectionObserver` on a
 * bottom sentinel element. A `ResizeObserver` on the content wrapper
 * detects height growth and triggers rAF-batched scroll writes when
 * in the Following state.
 *
 * @internal Not part of the public API.
 */
export declare function useAutoScroll(): UseAutoScrollReturn;
//# sourceMappingURL=useAutoScroll.d.ts.map