import { MotionValue } from 'framer-motion';
import { ComponentPropsWithoutRef, ComponentType, ElementRef, ForwardRefExoticComponent, RefAttributes } 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;
    dimmingEdges?: boolean;
}
declare const ElasticScrollAreaRoot: ForwardRefExoticComponent<ElasticScrollAreaProps & RefAttributes<HTMLDivElement>>;
declare const ScrollBar: ForwardRefExoticComponent<ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Scrollbar> & {
    scrollbarVisibility?: ElasticScrollAreaProps["scrollbarVisibility"];
} & RefAttributes<ElementRef<typeof ScrollAreaPrimitive.Scrollbar>>>;
export declare const ElasticScrollArea: typeof ElasticScrollAreaRoot & {
    ScrollBar: typeof ScrollBar;
};
export {};
