import { type CSSProperties, type JSX } from 'react';
import type { DataTableBreakpoint } from './tableBreakpoints.js';
import type { DataTableColumn, DataTableKind, GetRowId } from './DataTable.js';
import type { SlotClasses } from '../../styles/slots.js';
export type VirtualizationConfig = {
    enabled: boolean;
    rowHeightPx: number;
    overscan: number;
};
export type InfiniteScrollConfig = {
    enabled: boolean;
    thresholdPx?: number;
    autoLoad?: boolean;
};
type DataTableSlot = 'container' | 'header' | 'headerRow' | 'headerCell' | 'primaryHeaderCell' | 'body' | 'row' | 'rowEven' | 'rowOdd' | 'cell' | 'primaryCell' | 'emptyRow' | 'emptyCell';
export type VirtualizedConnectionTableProps<Row> = {
    columns: readonly DataTableColumn<Row>[];
    rows: readonly Row[];
    getRowId: GetRowId<Row>;
    emptyState?: JSX.Element;
    className?: string;
    gridTemplateColumns?: string;
    kind?: DataTableKind;
    classes?: SlotClasses<DataTableSlot>;
    virtualization?: VirtualizationConfig;
    infiniteScroll?: InfiniteScrollConfig;
    hasNextPage?: boolean;
    isLoadingMore?: boolean;
    onLoadMore?: () => void;
};
export declare const VirtualizedConnectionTable: <Row>({ columns, rows, getRowId, emptyState, className, gridTemplateColumns, kind, classes, virtualization, infiniteScroll, hasNextPage, isLoadingMore, onLoadMore, }: VirtualizedConnectionTableProps<Row>) => JSX.Element;
export declare const __test: {
    readonly buildInlineTemplate: (columnCount: number, gridTemplateColumns?: string) => CSSProperties;
    readonly getVisibilityClass: (minVisibleAt?: DataTableBreakpoint) => string | null;
    readonly clamp: (value: number, min: number, max: number) => number;
};
export {};
//# sourceMappingURL=VirtualizedConnectionTable.d.ts.map