import type { MouseEvent, ReactElement, ReactNode, RefAttributes } from 'react'; import type { TableProps } from '@mui/material'; import type { SxProps, Theme } from '@mui/material/styles'; type TableRowData = Record; export interface Column { id: string; label: ReactNode; /** Function to render a specific cell, or keyof T */ render?: (row: T) => ReactNode; align?: 'left' | 'center' | 'right'; } export interface ThemedTableProps extends Omit { /** Array of column definitions */ columns: Column[]; /** Array of data objects */ data: T[]; /** Function to extract a unique key from a row */ keyExtractor?: (row: T, index: number) => string | number; /** Enable striped rows */ striped?: boolean; /** Styling applied to the outer table container */ containerSx?: SxProps; /** Mark rows as selected */ isRowSelected?: (row: T, index: number) => boolean; /** Handle a row click */ onRowClick?: (row: T, index: number, event: MouseEvent) => void; } export declare const ThemedTable: (props: ThemedTableProps & RefAttributes) => ReactElement | null; export {}; //# sourceMappingURL=ThemedTable.d.ts.map