import type { DCloneHTMLElement, DId } from '../../utils/types'; import React from 'react'; export type DVirtualScrollPerformance = Pick, 'dList' | 'dExpands' | 'dItemSize' | 'dItemNested' | 'dItemKey' | 'dFocusable'>; export interface DVirtualScrollRef { scrollToItem: (item: T) => void; scrollToStep: (step: 1 | -1) => T | undefined; scrollToNested: () => T | undefined; scrollToStart: () => T | undefined; scrollToEnd: () => T | undefined; } export interface DItemRenderProps { aria: { 'aria-level': number; 'aria-setsize': number; 'aria-posinset': number; }; vsList?: React.ReactNode; } export interface DVirtualScrollProps { children: (props: { render: DCloneHTMLElement; vsList: React.ReactNode; }) => JSX.Element | null; dRef?: { list?: React.ForwardedRef; }; dList: T[]; dFillNode: React.ReactElement; dItemRender: (item: T, index: number, props: DItemRenderProps, parent: T[]) => React.ReactNode; dItemSize: number | ((item: T) => number); dItemNested?: (item: T) => { list?: T[]; emptySize?: number; inAriaSetsize: boolean; } | undefined; dItemKey: (item: T) => DId; dFocusable?: boolean | ((item: T) => boolean); dFocusItem?: T; dSize?: number; dPadding?: number; dHorizontal?: boolean; dEmptyRender?: (item: T) => React.ReactNode; dExpands?: Set; onScrollEnd?: () => void; } declare function VirtualScroll(props: DVirtualScrollProps, ref: React.ForwardedRef>): JSX.Element | null; export declare const DVirtualScroll: (props: DVirtualScrollProps & React.RefAttributes>) => ReturnType; export {};