import type { VirtualItem } from "@tanstack/react-virtual" import type { ReactNode, RefObject } from "react" export type ScrollOwner = | { kind: "element"; element: HTMLElement } | { kind: "window" } export type GridWindowProps = { drawnColumns: number gap: number getItemKey?: ( item: Item, index: number, ) => string | number itemBlockSize: number items: readonly Item[] label?: string overscanRows: number renderItem: (item: Item, index: number) => ReactNode rowCount: number } export type GridRowsProps = Omit< GridWindowProps, "itemBlockSize" | "overscanRows" | "rowCount" > & { gridElement: RefObject measureElement: (element: Element | null) => void scrollMargin: number totalSize: number virtualRows: VirtualItem[] }