import React, { HTMLAttributes } from 'react';
import { IHasCX, IEditable, VirtualListState, IHasRawProps, UseVirtualListProps } from '@epam/uui-core';
import type { ScrollbarsApi, ScrollbarProps } from './ScrollBars';
export interface VirtualListRenderRowsParams {
listContainerRef: React.MutableRefObject;
estimatedHeight: number;
offsetY: number;
}
type VirtualListRenderRows = {
rows?: React.ReactNode[];
renderRows: (config: VirtualListRenderRowsParams) => React.ReactNode;
} | {
rows: React.ReactNode[];
renderRows?: (config: VirtualListRenderRowsParams) => React.ReactNode;
};
interface BaseVirtualListProps extends IHasCX, IEditable, IHasRawProps>, Pick, Pick {
/** HTML role attribute to place on list container */
role?: React.HTMLAttributes['role'];
/** Pass true, to enable Blocker while list loading */
isLoading?: boolean;
/**
* Render callback for virtual list loading blocker
* If omitted, default UUI `Blocker` component will be rendered
*/
renderBlocker?: (props: {
isLoading: boolean;
}) => React.ReactNode;
}
export type VirtualListProps = BaseVirtualListProps & VirtualListRenderRows;
export declare const VirtualList: React.ForwardRefExoticComponent & React.RefAttributes>;
export {};
//# sourceMappingURL=VirtualList.d.ts.map