import React from 'react';
import { Align, ListOnScrollProps } from 'react-window';
export interface IRecycleListProps {
    /**
     * 容器高度
     * height 计算出可视区域渲染数量
     */
    height?: number;
    /**
     * 容器宽度
     * height 计算出可视区域渲染数量
     */
    width?: number;
    /**
     * 最大容器高度
     * 当容器内容高度大于该值时列表将不再增长，而是出现滚动条
     * maxHeight 匹配优先级高于 height 属性
     */
    maxHeight?: number;
    /**
     * 最小容器高度
     * 当容器内容高度小于该值时将不再收缩，而是固定高度，一般需要配合 maxHeight一起使用
     * maxHeight 匹配优先级高于 height 属性
     */
    minHeight?: number;
    /**
     * 节点高度
     */
    itemHeight?: number;
    /**
     * List外部样式
     */
    style?: React.CSSProperties;
    /**
     * List外部样式名
     */
    className?: string;
    /**
     * List数据源
     */
    data: any[];
    /**
     * 基础数据源渲染模板
     * 默认传入参数为：(data, index) => {}
     * data 为 this.props.data中的子项
     * index 为当前下标
     */
    template: React.ComponentType<any>;
    /**
     * 头部组件渲染模板
     * 默认传入参数为：() => {}
     */
    header?: React.ComponentType<any>;
    /**
     * 底部组件渲染模板
     * 默认传入参数为：() => {}
     */
    footer?: React.ComponentType<any>;
    /**
     * List 底部边距大小，默认值为 0
     */
    paddingBottomSize?: number;
    /**
     * 处理 RecycleList API回调
     * @memberof IRecycleListProps
     */
    onReady?: (api: IRecycleListHandler) => void;
    /**
     * Called when the list scroll positions changes, as a result of user scrolling or scroll-to method calls.
     */
    onScroll?: ((props: ListOnScrollProps) => any) | undefined;
    /**
     * 如果为不定高 Item 时可以指定动态获取 item Size
     * https://react-window.vercel.app/#/examples/list/variable-size
     */
    getSize?: (index: number) => number;
    /**
     * 是否隐藏纵向滚动条，默认 false
     */
    hiddenVerticalScrollbar?: boolean;
    /**
     * 是否隐藏横向滚动条，默认 false
     * 在不传入 paddingBottomSize=10 的情况下，底部元素会发生点击遮挡问题
     */
    hiddenHorizontalScrollbar?: boolean;
}
export interface IRecycleListHandler {
    scrollTo: (offset: number) => void;
    scrollToIndex: (index: number, position?: Align) => void;
}
export declare const RECYCLE_LIST_STABILIZATION_TIME = 500;
export declare const RECYCLE_LIST_OVER_SCAN_COUNT = 50;
export declare const RecycleList: React.FC<IRecycleListProps>;
//# sourceMappingURL=RecycleList.d.ts.map