import React from 'react'; import type { BaseTableColumn } from '../BaseTable/types'; export type TableColumn = BaseTableColumn; export interface TableProps { columns: TableColumn[]; data: TData[]; striped?: boolean; hoverable?: boolean; bordered?: boolean; compact?: boolean; density?: 'comfortable' | 'standard' | 'compact' | 'spacious'; caption?: string; captionPosition?: 'top' | 'bottom'; emptyText?: string; emptyState?: React.ReactNode; className?: string; stickyHeader?: boolean; virtualized?: boolean; virtualizedRowHeight?: number; height?: string | number; sortable?: boolean; onSort?: (key: string, direction: 'asc' | 'desc') => void; pagination?: { enabled: boolean; pageSize?: number; component?: React.ReactNode; currentPage?: number; onPageChange?: (page: number) => void; }; loading?: React.ReactNode; rowGroups?: Array<{ title?: string; startIndex: number; endIndex: number; renderTitle?: (group: { title?: string; startIndex: number; endIndex: number; }) => React.ReactNode; }>; headerRenderer?: () => React.ReactNode; footerRenderer?: () => React.ReactNode; footer?: Array<{ key: string; label?: string; render: (columns: TableColumn[]) => React.ReactNode; }>; ariaLabel?: string; ariaLabelledBy?: string; ariaDescribedBy?: string; [key: string]: any; }