import * as React from "react"; import { type TableProps } from "./table"; export type SortDirection = "asc" | "desc" | null; export interface DataTableColumn { /** Column header label */ header: string; /** Column accessor key or function */ accessorKey?: keyof T; /** Custom cell renderer */ cell?: (row: T, index: number) => React.ReactNode; /** Column width */ width?: string | number; /** Whether column is sortable */ sortable?: boolean; /** Custom sort function */ sortFn?: (a: T, b: T) => number; /** Whether column is filterable */ filterable?: boolean; /** Custom filter function */ filterFn?: (row: T, filterValue: string) => boolean; /** Whether column is resizable */ resizable?: boolean; } export interface DataTableProps extends Omit { /** Table columns configuration */ columns: DataTableColumn[]; /** Table data rows */ data: T[]; /** Table title */ title?: string; /** Show total count in header (if undefined, uses filtered data length) */ showCount?: boolean; /** Search functionality */ searchable?: boolean; /** Search placeholder */ searchPlaceholder?: string; /** Search value (controlled) */ searchValue?: string; /** Search onChange handler */ onSearchChange?: (value: string) => void; /** Column filtering enabled */ filterable?: boolean; /** Column filters (controlled) */ columnFilters?: Record; /** Column filter change handler */ onColumnFilterChange?: (columnKey: string, value: string) => void; /** Sorting enabled */ sortable?: boolean; /** Current sort state (controlled) */ sortState?: { columnKey: string; direction: SortDirection; }; /** Sort change handler */ onSortChange?: (columnKey: string, direction: SortDirection) => void; /** Pagination enabled */ paginated?: boolean; /** Current page (1-indexed) */ page?: number; /** Page size */ pageSize?: number; /** Total items count */ totalItems?: number; /** Page change handler */ onPageChange?: (page: number) => void; /** Page size change handler */ onPageSizeChange?: (size: number) => void; /** Available page sizes */ pageSizeOptions?: number[]; /** Toolbar actions (left side) */ toolbarActions?: React.ReactNode; /** Toolbar actions (right side) */ toolbarActionsRight?: React.ReactNode; /** Loading state */ loading?: boolean; /** Empty state message */ emptyMessage?: string; /** Row selection enabled */ selectable?: boolean; /** Selected row IDs */ selectedRows?: string[]; /** Row selection change handler */ onSelectionChange?: (selectedIds: string[]) => void; /** Row ID getter */ getRowId?: (row: T, index: number) => string; /** Pagination position - 'bottom' | 'top' | 'both' */ paginationPosition?: "bottom" | "top" | "both"; } export declare function DataTable = any>({ columns, data, title, showCount, searchable, searchPlaceholder, searchValue, onSearchChange, filterable, columnFilters, onColumnFilterChange, sortable, sortState, onSortChange, paginated, page, pageSize, totalItems, onPageChange, onPageSizeChange, pageSizeOptions, toolbarActions, toolbarActionsRight, loading, emptyMessage, selectable, selectedRows, onSelectionChange, getRowId, paginationPosition, className, ...props }: DataTableProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=data-table.d.ts.map