import { default as React } from 'react'; import { TooltipPlacement } from '../overlays/Tooltip'; export interface DataTableColumn> { /** Key in data object */ key: string; /** Column header text */ header: string; /** Column width (CSS value or number for px) */ width?: string | number; /** Text alignment */ align?: "left" | "center" | "right"; /** Use monospace font (good for numbers) */ mono?: boolean; /** Custom cell renderer */ render?: (value: unknown, row: T, index: number) => React.ReactNode; /** Hide column on mobile */ hideOnMobile?: boolean; /** Tooltip for the column header (explains what this column represents) */ headerTooltip?: string; /** Per-cell tooltip — return string or ReactNode, or undefined to skip */ cellTooltip?: (value: unknown, row: T, index: number) => React.ReactNode | undefined; } export interface DataTableProps> { /** Column definitions */ columns: DataTableColumn[]; /** Data rows */ data: T[]; /** Key field for React keys (default: index) */ keyField?: string; /** Group rows by this field */ groupBy?: string; /** Allow expanding/collapsing groups */ expandable?: boolean; /** Default expanded state for groups */ defaultExpanded?: boolean; /** Striped rows */ striped?: boolean; /** Compact row padding */ compact?: boolean; /** Show header row */ showHeader?: boolean; /** Empty state message */ emptyMessage?: string; /** Row click handler */ onRowClick?: (row: T, index: number) => void; /** Simple string tooltip for each row (legacy — uses native title) */ rowTooltip?: (row: T) => string | undefined; /** Rich tooltip content for each row — renders in a portal-based Tooltip */ rowTooltipContent?: (row: T, index: number) => React.ReactNode | undefined; /** Placement for row and cell tooltips (default: 'top') */ tooltipPlacement?: TooltipPlacement; /** Delay before tooltips appear in ms (default: 300) */ tooltipDelay?: number; /** Max height with scroll */ maxHeight?: string | number; /** Color for boolean ✓/✗ values (e.g. '#fff' for white). Defaults to text.primary or row status. */ booleanColor?: string; /** Optional row status key or getter — boolean cells use this row's status color when set (matches white/status design). */ getRowStatus?: (row: T, index: number) => "normal" | "caution" | "serious" | "critical" | "standby" | "off" | undefined; /** Custom style */ style?: React.CSSProperties; } export interface DataTableRowDetailField { /** Field label */ label: string; /** Field value (string, number, or ReactNode for custom rendering) */ value: React.ReactNode; /** Optional status color for the value */ status?: "normal" | "caution" | "serious" | "critical" | "standby" | "off"; /** Use monospace font for this value */ mono?: boolean; } export interface DataTableRowDetailProps { /** Title shown at the top of the tooltip */ title?: React.ReactNode; /** Optional subtitle / secondary info */ subtitle?: React.ReactNode; /** Structured key-value fields to display */ fields?: DataTableRowDetailField[]; /** Optional footer content (timestamps, actions, etc.) */ footer?: React.ReactNode; /** Optional icon or status indicator beside the title */ icon?: React.ReactNode; /** Maximum width of the tooltip (default: 320) */ maxWidth?: number; } /** * Pre-built tooltip content renderer for DataTable rows. * Provides a structured layout: title, key-value fields, and optional footer. * * @example * ```tsx * ( * * )} * /> * ``` */ export declare const DataTableRowDetail: React.NamedExoticComponent; export declare const DataTable: >(props: DataTableProps) => React.ReactElement; export default DataTable;