import { TS_Object } from '@nu-art/ts-common'; import React, { HTMLProps } from 'react'; import './TS_Table.scss'; export type Header> = T extends TableHeaders ? P | { header: P; className?: string; widthPx?: number | string; } : never; export type TableHeaders = (P | { header: P; className?: string; widthPx?: number | string; })[]; export type HeaderRenderer = { [C in P]?: (columnKey: C) => React.ReactNode; }; export type CellRenderer = (prop: P, item: R, index: number) => React.ReactNode; export type RowRenderer = { [C in P]?: CellRenderer; }; export type Props_Table = { id?: string; header: TableHeaders; rows: R[]; headerRenderer?: ((columnKey: P) => React.ReactNode) | HeaderRenderer; cellRenderer: CellRenderer | RowRenderer; table?: HTMLProps | (() => HTMLProps); head?: HTMLProps | (() => HTMLProps); body?: HTMLProps | (() => HTMLProps); tr?: HTMLProps | ((row: R | undefined, rowIndex: number) => HTMLProps); td?: HTMLProps | ((row: R, rowIndex: number, columnKey: P) => HTMLProps); th?: HTMLProps | ((columnKey: P) => HTMLProps); }; export declare class TS_Table extends React.Component, any> { static defaultProps: { actionHeaderRenderer: (action: any) => import("react/jsx-runtime").JSX.Element; }; constructor(p: Props_Table); render(): import("react/jsx-runtime").JSX.Element; private renderTableHeader; private renderTableBody; }