import React from "react"; import type { ColumnSort, OnChangeFn, Row, SortingState, VisibilityState } from "@tanstack/react-table"; interface DataTableColumn { header?: string | number | React.JSX.Element; cell?: (row: T) => string | number | React.JSX.Element | null; size?: number; truncate?: boolean; className?: string; enableSorting?: boolean; enableResizing?: boolean; enableHiding?: boolean; accessorKey?: string; } type DataTableColumns = { [P in keyof T]?: DataTableColumn; }; type DataTableDefaultData = { id: string; $selectable?: boolean; }; type DataTableRow = Row; type DataTableSorting = SortingState; type DataTableColumnSort = ColumnSort; type OnDataTableSortingChange = OnChangeFn; type DataTableColumnVisibility = VisibilityState; type OnDataTableColumnVisibilityChange = OnChangeFn; interface DataTableProps { /** * Show or hide borders. */ bordered?: boolean; /** * Controls whether "select all" action is allowed. */ canSelectAllRows?: boolean; /** * Columns definition. */ columns: DataTableColumns; /** * The column visibility state. */ columnVisibility?: DataTableColumnVisibility; /** * Callback that receives current column visibility state. */ onColumnVisibilityChange?: OnDataTableColumnVisibilityChange; /** * Data to display into DataTable body. */ data: TEntry[]; /** * Callback that is called to determine if the row is selectable. */ isRowSelectable?: (row: Row) => boolean; /** * Render the skeleton state while data are loading. */ loading?: boolean; /** * Callback that receives the selected rows. */ onSelectRow?: (rows: TEntry[]) => void; /** * Callback that receives the toggled row. */ onToggleRow?: (row: TEntry) => void; /** * Callback that receives current sorting state. */ onSortingChange?: OnDataTableSortingChange; /** * Selected rows. */ selectedRows?: TEntry[]; /** * Sorting state. */ sorting?: DataTableSorting; /** * Initial sorting state. */ initialSorting?: DataTableSorting; /** * Enable sticky header. */ stickyHeader?: boolean; } declare const DataTable: ( & DataTableDefaultData>({ bordered, canSelectAllRows, columnVisibility, columns: initialColumns, data: initialData, initialSorting, isRowSelectable, loading, onColumnVisibilityChange, onSelectRow, onSortingChange, onToggleRow, selectedRows, sorting, stickyHeader }: DataTableProps) => React.JSX.Element) & { original: & DataTableDefaultData>({ bordered, canSelectAllRows, columnVisibility, columns: initialColumns, data: initialData, initialSorting, isRowSelectable, loading, onColumnVisibilityChange, onSelectRow, onSortingChange, onToggleRow, selectedRows, sorting, stickyHeader }: DataTableProps) => React.JSX.Element; originalName: string; displayName: string; } & { original: ( & DataTableDefaultData>({ bordered, canSelectAllRows, columnVisibility, columns: initialColumns, data: initialData, initialSorting, isRowSelectable, loading, onColumnVisibilityChange, onSelectRow, onSortingChange, onToggleRow, selectedRows, sorting, stickyHeader }: DataTableProps) => React.JSX.Element) & { original: & DataTableDefaultData>({ bordered, canSelectAllRows, columnVisibility, columns: initialColumns, data: initialData, initialSorting, isRowSelectable, loading, onColumnVisibilityChange, onSelectRow, onSortingChange, onToggleRow, selectedRows, sorting, stickyHeader }: DataTableProps) => React.JSX.Element; originalName: string; displayName: string; }; originalName: string; displayName: string; } & { createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<( & DataTableDefaultData>({ bordered, canSelectAllRows, columnVisibility, columns: initialColumns, data: initialData, initialSorting, isRowSelectable, loading, onColumnVisibilityChange, onSelectRow, onSortingChange, onToggleRow, selectedRows, sorting, stickyHeader }: DataTableProps) => React.JSX.Element) & { original: & DataTableDefaultData>({ bordered, canSelectAllRows, columnVisibility, columns: initialColumns, data: initialData, initialSorting, isRowSelectable, loading, onColumnVisibilityChange, onSelectRow, onSortingChange, onToggleRow, selectedRows, sorting, stickyHeader }: DataTableProps) => React.JSX.Element; originalName: string; displayName: string; }>) => (props: unknown) => React.JSX.Element; }; export { DataTable, type DataTableProps, type DataTableColumn, type DataTableColumns, type DataTableDefaultData, type DataTableRow, type DataTableSorting, type DataTableColumnSort, type OnDataTableSortingChange, type DataTableColumnVisibility, type OnDataTableColumnVisibilityChange };