import { type MutableRefObject, type UIEvent } from 'react';
import type { ChatMessage } from '../types/ChatMessage';
/**
 * Inputs required to coordinate Chat scroll behavior.
 *
 * @private function of `useChatScrollState`
 */
type UseChatScrollStateProps = {
    messages: ReadonlyArray<ChatMessage>;
};
/**
 * Public result consumed by `<Chat/>`.
 *
 * @private function of `useChatScrollState`
 */
type UseChatScrollStateResult = {
    readonly actionsRef: MutableRefObject<HTMLDivElement | null>;
    readonly ariaLabel: string;
    readonly badgeLabel: string;
    readonly handleChatScroll: (event: UIEvent<HTMLDivElement>) => void;
    readonly isMobile: boolean;
    readonly scrollToBottom: (behavior?: 'smooth' | 'auto') => void;
    readonly setChatMessagesElement: (element: HTMLDivElement | null) => void;
    readonly shouldDisableActions: boolean;
    readonly shouldFadeActions: boolean;
    readonly shouldShowScrollToBottom: boolean;
};
/**
 * Coordinates auto-scroll, overlap tracking, and the scroll-to-bottom indicator for `<Chat/>`.
 *
 * @private function of `<Chat/>`
 */
export declare function useChatScrollState({ messages }: UseChatScrollStateProps): UseChatScrollStateResult;
export {};
