import * as React from "react";
import { Chat } from "../models/Chat";
import { ChatSurfaceState, ScrollAction, ScrollStateAttribute } from "./scrollStateMachine";
type UseMaxPanelScrollControllerArgs = {
    isAgentPanelOpen?: boolean;
    currentConversationId: string | null | undefined;
    showConversationList: boolean;
    loading: boolean;
    messages: Chat[];
    messageHasBeenSent: boolean;
    isAgentThinking: boolean;
    streamingResponse?: string;
    hasMoreMessages: boolean;
    isLoadingOlderMessages: boolean;
    loadOlderMessages: () => Promise<void>;
};
type UseMaxPanelScrollControllerResult = {
    scrollWrapperRef: React.MutableRefObject<HTMLDivElement | null>;
    sentinelRef: React.MutableRefObject<HTMLDivElement | null>;
    showScrollToBottom: boolean;
    isConversationTransitioning: boolean;
    isStreaming: boolean;
    isActiveChat: boolean;
    chatSurfaceState: ChatSurfaceState;
    scrollStateAttribute: ScrollStateAttribute;
    prepareConversationSwitchSnap: () => void;
    scrollToLatest: () => void;
};
export declare function useMaxPanelScrollController(args: UseMaxPanelScrollControllerArgs): UseMaxPanelScrollControllerResult;
export type { ScrollAction };
