import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';

interface DataRowListProps<TRow> {
    /** The filtered/sorted rows from `tableState.rows` (or wherever). */
    rows: readonly TRow[];
    /** Stable id used as the React `key` and (for virtualizer) the v-key. */
    getRowId: (row: TRow, index: number) => string | number;
    /** Render the body of one row. Wrap with `<ListPageBoardCard layout="row">` etc. */
    renderRow: (row: TRow, index: number) => React.ReactNode;
    /**
     * Shown when `rows.length === 0`. Strings render as muted body copy; pass
     * a `ReactNode` for richer empty states (illustration, CTA, etc.).
     */
    emptyState?: React.ReactNode;
    /**
     * Auto-virtualise when `rows.length >= virtualizeThreshold`. Default 100.
     * Pass `0` to never virtualise (preserves predictable layout for short
     * lists like dashboards / pinned tabs).
     */
    virtualizeThreshold?: number;
    /** Hint for the virtualizer; clamps to measured size after first paint. */
    estimatedRowHeight?: number;
    /** Override the default container padding / gap if needed. */
    className?: string;
    /** Override the per-row `<li>` className (e.g. tighter spacing). */
    rowClassName?: string;
    /** `aria-label` for the `<ul>` (screen-reader name for the list). */
    ariaLabel?: string;
}
declare function DataRowList<TRow>(props: DataRowListProps<TRow>): react_jsx_runtime.JSX.Element | null;

export { DataRowList, type DataRowListProps };
