import { ScrollOverflow } from '../../../hooks/src/use-scroll-overflow';
import { ComponentPropsWithRef, ReactNode, RefObject } from 'react';
import { SnapCarouselResult } from 'react-snap-carousel';
type SnapType = 'mandatory' | 'proximity' | 'none';
type ScrollBehavior = 'smooth' | 'instant';
type SnapStop = 'normal' | 'always';
interface Props extends ComponentPropsWithRef<'div'> {
    /**
     * CSS scroll snap behavior.
     * - `mandatory` to force snapping on each "page".
     * - `proximity` to force snapping only when scroll position is near the edge of a "page". Behavior can change depending on each browser.
     * - `none` to disabled scroll snapping.
     */
    snapType?: SnapType;
    /**
     * Defines whether or not the scroll container is allowed to "pass over" possible snap positions.
     */
    snapStop?: SnapStop;
    scrollBehavior?: ScrollBehavior;
    /**
     * Add a fade effect to indicate content overflow.
     */
    withFade?: boolean;
    children?: ReactNode;
    /**
     * When `true`, allow previous and next buttons to be used when reaching the edges of the list.
     */
    loop?: boolean;
    /**
     * Space (in pixels) between items.
     */
    gap?: number;
    /**
     * Offset (in pixels) of the left of the optimal viewing region of the list.
     */
    scrollPadding?: number;
    className?: string;
}
interface ScrollingListContextState extends SnapCarouselResult {
    snapType: SnapType;
    snapStop: SnapStop;
    scrollBehavior: ScrollBehavior;
    visibleItemsRange: readonly [number, number];
    loop: boolean;
    gap: number;
    withFade: boolean;
    scrollPadding: number;
    scrollAreaRef: RefObject<HTMLDivElement | null>;
    overflow: ScrollOverflow;
    skipKeyboardNavigation: () => void;
}
export declare const ScrollingListContext: import('react').Context<ScrollingListContextState>;
export declare const ScrollingList: {
    ({ snapType, snapStop, scrollBehavior, loop, gap, withFade, scrollPadding, children, className, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export {};
