import { MotionValue } from 'framer-motion';
import { ComponentPropsWithoutRef, ComponentType } from 'react';
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
interface RefreshIndicatorProps {
    pullProgress: MotionValue<number>;
    isRefreshing: boolean;
}
export interface ElasticScrollAreaProps extends ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {
    orientation?: "vertical" | "horizontal";
    elasticity?: boolean;
    dampingFactor?: number;
    scrollbarVisibility?: "auto" | "always" | "scroll" | "hidden" | "visible";
    pullToRefresh?: boolean;
    onRefresh?: () => Promise<unknown>;
    pullThreshold?: number;
    RefreshIndicatorComponent?: ComponentType<RefreshIndicatorProps>;
    onScrollUp?: () => void;
    onScrollDown?: () => void;
    viewportClassName?: string;
}
export declare const ElasticScrollArea: import('react').ForwardRefExoticComponent<ElasticScrollAreaProps & import('react').RefAttributes<HTMLDivElement>> & {
    ScrollBar: import('react').ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
        scrollbarVisibility?: ElasticScrollAreaProps["scrollbarVisibility"];
    } & import('react').RefAttributes<HTMLDivElement>>;
};
export {};
