import { TableUIProps } from './table-ui'; import { TableColumn, TableRow, TableSortState } from './types'; export interface TableProps extends Pick, 'pageSizeOptions' | 'selectable' | 'labels' | 'emptyContent' | 'size' | 'keyColumn'> { /** * Column definitions. Order can be overridden by ChangeColumn via the * `columnOrder` field on the extended widget state. */ columns: readonly TableColumn[]; /** * When set, render only the first `visibleColumns` entries **after** * applying the user's `columnOrder` from the store. Useful for showing * a compact projection while letting consumers (e.g. `Widget.ChangeColumn`) * see the full column list. When omitted, every column renders. */ visibleColumns?: number; /** Initial page size (only on first mount; afterwards lives on the store). */ initialPageSize?: number; /** Selected row ids (destination-owned). */ selection?: readonly (string | number)[]; onSelectionChange?: (next: readonly (string | number)[]) => void; onRowClick?: (row: T) => void; onRowHover?: (row: T | null) => void; /** * When `true`, the bridge stops sorting and paginating locally and * renders `data` as-is — the consumer is then responsible for * refetching the slice that matches the active `page` / `pageSize` / * `sort` from the outbound callbacks below. `total` is required in * this mode (the server already knows the full row count; the * widget can't infer it from a partial page). */ remote?: boolean; /** * Server-reported total row count. Required when `remote === true`; * ignored in local mode (where the bridge derives total from the * sorted result of `deriveVisibleRows`). */ total?: number; /** Fires after the store-level sort write so the consumer can refetch. */ onSortChange?: (next: TableSortState) => void; /** Fires after the store-level page write so the consumer can refetch. */ onPageChange?: (page: number) => void; /** Fires after the store-level pageSize write so the consumer can refetch. */ onPageSizeChange?: (pageSize: number) => void; } /** * Bridge component — reads the widget store's `data`, applies sort + pagination * locally, and feeds ``. Sort, page, and pageSize live on the * extended widget state ({@link TableWidgetState}). */ export declare function Table({ columns, visibleColumns, initialPageSize, selection, onSelectionChange, onRowClick, onRowHover, remote, total: remoteTotal, onSortChange, onPageChange, onPageSizeChange, ...uiProps }: TableProps): import("react/jsx-runtime").JSX.Element;