import { BoxProps } from '@mantine/core'; import { ViewTypeEnum } from '@/enums/view-type.enum'; import { VTableSorting } from '@/types/models/v-table-sort-info'; import { VTableColumn } from '@/types/models/v-table-types'; import { VTableEmptyProps } from './components/VTableEmpty'; export interface VTableCollapsedRenderContext { view: 'table' | 'card'; } export interface VTableProps { title?: string; columns: VTableColumn[]; containerProps?: BoxProps; data: T[]; emptyStateDescription?: VTableEmptyProps['description']; emptyStateTitle?: VTableEmptyProps['title']; idKey: keyof T; loading?: boolean; onSelectionChange?: (selection: T[]) => void; withSelection?: boolean; selection?: T[]; withSingleSelection?: boolean; externalViewType?: ViewTypeEnum; withPagination?: boolean; onPageChange?: (page: number) => void; onPageSizeChange?: (pageSize: number) => void; page?: number; pageSize?: number; totalElements?: number; totalPages?: number; withServerPagination?: boolean; withCollapsible?: boolean; isRowCollapsible?: (row: T, rowIndex: number) => boolean; renderCollapsed?: (row: T, rowIndex: number, context: VTableCollapsedRenderContext) => React.ReactNode; collapsedViewType?: VTableCollapsedRenderContext['view']; withMultipleCollapse?: boolean; withinModal?: boolean; renderHeaderActions?: (context: { selection: T[]; }) => React.ReactNode; withSwitchActions?: boolean; onRowClick?: (row: T) => void; getRowUrl?: (row: T) => string; renderFilterSection?: React.ReactNode; /** Server-side sorting configuration from useUrlMetadata hook */ sorting?: VTableSorting; } declare function VTableComponent({ title, columns, containerProps, data, emptyStateDescription, emptyStateTitle, idKey, loading, onSelectionChange, withSelection, selection, withSingleSelection, externalViewType, onPageChange, onPageSizeChange, page, pageSize, totalElements: externalTotalElements, totalPages: externalTotalPages, withPagination, withServerPagination, withCollapsible, isRowCollapsible, renderCollapsed, collapsedViewType, withMultipleCollapse, withinModal, renderHeaderActions, withSwitchActions, onRowClick, getRowUrl, renderFilterSection, sorting, }: VTableProps): import("react/jsx-runtime").JSX.Element; type VTableType = typeof VTableComponent; export declare const VTable: VTableType; export {};