import { Component, ReactNode, ReactElement, ComponentType, ComponentProps } from 'react'; import { TableProps as AnvilTableProps, TableRowProps, TableColumnProps as AnvilTableColumnProps, TableCellProps as AnvilTableCellProps, TableHeaderSelectionChangeEvent, TableSelectionChangeEvent, TablePagerSettings } from '@servicetitan/design-system'; import { GRID_COL_INDEX_ATTRIBUTE } from '@progress/kendo-react-grid'; import { IdType } from '@servicetitan/data-query'; import { TableState } from './table-state'; import { SelectionControlType } from './select-cell/select-cell'; export interface TableCellProps extends AnvilTableCellProps { tableState?: TableState; tdProps?: ComponentProps<'td'> & { [GRID_COL_INDEX_ATTRIBUTE]?: number; }; } interface TableColumnProps extends AnvilTableColumnProps { cell?: ComponentType>; children?: ReactElement>[]; } type ExcludedTableProps = 'data' | 'dataItemKey' | 'editField' | 'filter' | 'onFilterChange' | 'group' | 'onGroupChange' | 'onExpandChange' | 'expandField' | 'sort' | 'onSortChange' | 'onHeaderSelectionChange' | 'onSelectionChange' | 'selectedField' | 'pageable' | 'pageSize' | 'skip' | 'onPageChange' | 'total' | 'selectable' | 'pager'; export interface TableProps extends Omit { selectable?: boolean; exportable?: boolean; hideSelectAll?: boolean; exportFileName?: string; tableState: TableState; selectionControl?: SelectionControlType; pager?: TablePagerSettings; } export declare class Table extends Component> { observableScrollable: TableProps['scrollable']; observableSelectionControl: TableProps['selectionControl']; observableHideSelectAll: TableProps['hideSelectAll']; observableSelectable: TableProps['selectable']; private tableState; private ref; private lastSelection?; private selectColumnCell; private customCellMap; private selectHeaderCell; private withCellTableState; constructor(props: TableProps); componentDidUpdate(): void; rowRender: (row: ReactElement, rowProps: TableRowProps) => string | number | boolean | ReactElement> | Iterable | null | undefined; applyToColumns(children: ReactNode, transformer: (column: ReactElement>) => ReactElement>): ReactNode; handleHeaderSelectionChange: (ev: TableHeaderSelectionChangeEvent) => void; handleSelectionChange: (ev: TableSelectionChangeEvent) => void; scrollToBottom: () => void; render(): import("react/jsx-runtime").JSX.Element; private getPageable; private table; private getOrCreateCellComponentWithTableState; } export {}; //# sourceMappingURL=table.d.ts.map