import { type ReactNode } from "react"; import { type ColumnDef, type SortingState } from "@tanstack/react-table"; /** Per-column presentation hints, read off `columnDef.meta`. */ export type ColumnMeta = { align?: "left" | "right" | "center"; headerClassName?: string; cellClassName?: string; /** Fixed pixel width for this column. */ width?: number; }; export type DataTableProps = { columns: ColumnDef[]; data: T[]; /** Stable row id — defaults to index. */ getRowId?: (row: T) => string; /** Whole-row navigation target. Rows become clickable when provided. */ rowHref?: (row: T) => string; /** Whole-row action for in-page navigation. */ rowOnClick?: (row: T) => void; /** Optional expanded row renderer, displayed directly below the matching row. */ renderExpandedRow?: (row: T) => ReactNode; /** Whether a row should render its expanded content. */ isRowExpanded?: (row: T) => boolean; /** Inline search box. Omit to hide. */ searchPlaceholder?: string; /** Custom matcher for the search box. Defaults to substring over all cells. */ searchFn?: (row: T, query: string) => boolean; /** Inline filter controls, rendered after the search box. */ filters?: ReactNode; /** Right-aligned toolbar slot (e.g. a refresh control). */ rightSlot?: ReactNode; pageSize?: number; initialSorting?: SortingState; /** Empty state when there is no data at all. */ empty?: ReactNode; /** Empty state when filters/search exclude everything. */ emptyFiltered?: ReactNode; }; export declare function DataTable({ columns, data, getRowId, rowHref, rowOnClick, renderExpandedRow, isRowExpanded, searchPlaceholder, searchFn, filters, rightSlot, pageSize, initialSorting, empty, emptyFiltered, }: DataTableProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=data-table.d.ts.map