declare namespace recycleContext { interface itemSize { width: number; height: number; } type Component = any; type Page = any; type itemSizeFunc = (item: T, index: number) => itemSize interface options { id: string; dataKey: string; page: Component | Page; itemSize: itemSizeFunc | itemSize; useInPage?: boolean; root?: Page; } interface position { left: number; top: number; width: number; height: number; } interface RecycleContext { append(list: T[], callback?: () => void): RecycleContext appendList(list: T[], callback?: () => void): RecycleContext splice(begin: number, deleteCount: number, appendList: T[], callback?: () => void): RecycleContext; updateList(beginIndex: number, list: T[], callback?: () => void): RecycleContext update(beginIndex: number, list: T[], callback?: () => void): RecycleContext destroy(): RecycleContext forceUpdate(callback: () => void, reinitSlot: boolean): RecycleContext getBoundingClientRect(index: number | undefined): position | position[] getScrollTop(): number; transformRpx(rpx: number, addPxSuffix?: string): number; getViewportItems(inViewportPx: number): T[] getList(): T[] } } declare function createRecycleContext(op: recycleContext.options): recycleContext.RecycleContext export = createRecycleContext;