import { Collection, Key } from '@react-types/shared'; import { Layout } from './Layout'; import React from 'react'; import { Rect } from './Rect'; import { ReusableView } from './ReusableView'; import { Size } from './Size'; import { Virtualizer } from './Virtualizer'; export declare const useLayoutEffect: typeof React.useLayoutEffect; interface VirtualizerProps { renderView(type: string, content: T | null): V; layout: Layout; collection: Collection; onVisibleRectChange(rect: Rect): void; persistedKeys?: Set | null; layoutOptions?: O; allowsWindowScrolling?: boolean; } export interface VirtualizerState { visibleViews: ReusableView[]; setVisibleRect: (rect: Rect) => void; size: Size; setSize: (size: Size) => void; contentSize: Size; virtualizer: Virtualizer; isScrolling: boolean; startScrolling: () => void; endScrolling: () => void; } export declare function useVirtualizerState(opts: VirtualizerProps): VirtualizerState; export {};