import { default as React } from 'react';
import { ScrollContainer, ScrollAwareContainerProps } from './types';
/**
* Hook to access scroll container context.
*/
export declare function useScrollContainerContext(): ScrollContainer | null;
/**
* Extended props with additional scroll features.
*/
export interface ExtendedScrollAwareContainerProps extends ScrollAwareContainerProps {
/** Maximum height before scroll */
maxHeight?: number | string;
/** Whether to show scroll indicators */
showScrollIndicators?: boolean;
/** Callback when scroll starts */
onScrollStart?: () => void;
/** Callback when scroll ends */
onScrollEnd?: () => void;
/** Scroll snap configuration */
scrollSnap?: {
type: 'mandatory' | 'proximity';
align: 'start' | 'center' | 'end';
};
}
/**
* A scroll container that tracks and exposes scroll state.
*
* @remarks
* This component wraps content in a scrollable container and
* provides scroll state information to children and callbacks.
*
* @example
* ```tsx
* // Basic usage
*
*
*
*
* // With scroll callbacks
* console.log('Scroll:', state.scrollPosition)}
* onScrollEdge={(edge) => console.log('Reached:', edge)}
* >
*
*
*
* // With virtualization (for large lists)
*
* {items.map((item) => )}
*
* ```
*/
export declare const ScrollAwareContainer: React.ForwardRefExoticComponent>;
/**
* Hook to get imperative scroll control methods.
*/
export declare function useScrollControl(): {
scrollState: ScrollContainer | null;
scrollTo: (options: {
x?: number;
y?: number;
behavior?: 'auto' | 'smooth';
}) => void;
scrollBy: (options: {
x?: number;
y?: number;
behavior?: 'auto' | 'smooth';
}) => void;
scrollToTop: (behavior?: 'auto' | 'smooth') => void;
scrollToBottom: (behavior?: 'auto' | 'smooth') => void;
isScrolling: boolean;
scrollDirection: string;
scrollProgress: {
x: number;
y: number;
};
};