import { type VariantProps } from 'class-variance-authority'; import * as React from 'react'; declare const scrollButtonVariants: (props?: ({ variant?: "default" | "ghost" | "primary" | null | undefined; size?: "lg" | "md" | "sm" | null | undefined; position?: "bottom-center" | "bottom-left" | "bottom-right" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface UseScrollToBottomOptions { /** Threshold in pixels from bottom to consider "at bottom" */ threshold?: number; /** Scroll behavior */ behavior?: ScrollBehavior; /** Enable auto-scroll mode: tracks whether auto-scroll should fire on content changes */ autoScroll?: boolean; } export interface UseScrollToBottomReturn { /** Whether the user is at the bottom of the container */ isAtBottom: boolean; /** Scroll to bottom function */ scrollToBottom: (behavior?: ScrollBehavior) => void; /** Ref to attach to the scrollable container */ containerRef: React.RefObject; /** Ref to attach to the scroll anchor element */ anchorRef: React.RefObject; /** Whether auto-scroll should fire (only meaningful when autoScroll option is true) */ shouldAutoScroll: boolean; /** Call when user scrolls manually to disable auto-scroll (re-enables when user scrolls back to bottom) */ handleUserScroll: () => void; /** Trigger an auto-scroll if shouldAutoScroll is true (uses requestAnimationFrame) */ triggerAutoScroll: () => void; } export declare function useScrollToBottom({ threshold, behavior, autoScroll: autoScrollEnabled, }?: UseScrollToBottomOptions): UseScrollToBottomReturn; export interface AIScrollButtonProps extends VariantProps { /** Target scroll element ref */ scrollRef?: React.RefObject; /** Scrollable container ref */ containerRef?: React.RefObject; /** Threshold in pixels from bottom to show button */ threshold?: number; /** Click handler (defaults to scrolling to bottom) */ onClick?: () => void; /** Whether to show the button (controlled) */ visible?: boolean; /** Label for accessibility */ label?: string; /** Show unread count badge */ unreadCount?: number; /** Additional class name */ className?: string; } declare function AIScrollButton({ scrollRef, containerRef, threshold, onClick, visible: controlledVisible, variant, size, position, label, unreadCount, className, }: AIScrollButtonProps): React.JSX.Element; declare namespace AIScrollButton { var displayName: string; } export interface AIScrollAnchorProps { /** Ref to expose for scrolling */ ref?: React.Ref; /** Additional class name */ className?: string; } declare const AIScrollAnchor: React.ForwardRefExoticComponent & React.RefAttributes>; export { AIScrollAnchor, AIScrollButton, scrollButtonVariants };