import { ReactNode, CSSProperties } from 'react';
/**
 * 无限滚动组件的属性接口
 */
export interface InfiniteScrollProps {
    /** 数据长度，用于判断是否需要加载更多 */
    dataLength: number;
    /** 加载更多数据的函数 */
    next: () => void;
    /** 是否还有更多数据 */
    hasMore: boolean;
    /** 加载中显示的组件 */
    loader?: ReactNode;
    /** 没有更多数据时显示的组件 */
    endMessage?: ReactNode;
    /** 滚动容器的高度 */
    height?: number | string;
    /** 滚动阈值，0-1之间的数值或像素值 */
    scrollThreshold?: number | string;
    /** 滚动事件回调 */
    onScroll?: (event: Event) => void;
    /** 自定义样式 */
    style?: CSSProperties;
    /** 自定义类名 */
    className?: string;
    /** 指定滚动容器的目标元素ID */
    scrollableTarget?: string;
    /** 子元素 */
    children: ReactNode;
    /** 是否反向滚动 */
    inverse?: boolean;
}
/**
 * 滚动位置信息
 */
export interface ScrollPosition {
    scrollTop: number;
    scrollHeight: number;
    clientHeight: number;
}
/**
 * 组件内部状态
 */
export interface InfiniteScrollState {
    isLoading: boolean;
}
