import { SxProps } from '@mui/material'; import { ColumnDef } from '@tanstack/react-table'; import { default as React, ReactNode } from 'react'; export type AbyssTableFilterDef = { columnId: string; label: string; render: (value: any, onChange: (value: any) => void) => ReactNode; }; export type AbyssTableProps = { data: TData[]; columns: ColumnDef[]; enableGlobalFilter?: boolean; enableColumnFilters?: boolean; enableSorting?: boolean; enablePagination?: boolean; defaultPageSize?: number; pageSizeOptions?: number[]; manualPagination?: boolean; pageCount?: number; totalItems?: number; currentPage?: number; onPageChange?: (page: number) => void; onPageSizeChange?: (pageSize: number) => void; filters?: AbyssTableFilterDef[]; onSearchChange?: (value: string) => void; searchValue?: string; searchPlaceholder?: string; searchDebounceMs?: number; emptyMessage?: string; emptyContent?: ReactNode; onRowClick?: (row: TData) => void; sx?: SxProps; tableLabel?: string; getRowSx?: (row: TData, index: number) => SxProps; isLoading?: boolean; renderAboveTable?: ReactNode; }; declare function AbyssTable({ data, columns, enableGlobalFilter, enableColumnFilters, enableSorting, enablePagination, defaultPageSize, pageSizeOptions, manualPagination, pageCount: externalPageCount, totalItems: externalTotalItems, currentPage: externalCurrentPage, onPageChange, onPageSizeChange, filters, onSearchChange, searchValue, searchPlaceholder, searchDebounceMs, emptyMessage, emptyContent, onRowClick, sx, tableLabel, getRowSx, isLoading, renderAboveTable, }: AbyssTableProps): React.JSX.Element; export default AbyssTable;