import React, { HTMLAttributes } from "react"; type PlainObject = { [key: string]: any } export interface ColumnProps { title?: React.ReactNode key?: React.Key dataIndex?: keyof T | string render?: (text: any, record: T, index: number) => React.ReactNode align?: 'left' | 'right' | 'center' className?: string fixed?: boolean | ('left' | 'right') } export type TableRowProp = Partial> export interface TableProp { columns?: ColumnProps[] dataSource?: T[] rowKey?: string className?: string style?: React.CSSProperties offsetTop?: number multiLine?: boolean scrollBarOffset?: number onRow?: (record: T) => TableRowProp } export interface HorizontalScrollBarProp { className?: string; scrollTarget?: string | HTMLElement; offsetBottom?: number; } interface BaseTableProp { columns?: ColumnProps[] dataSource?: T[] rowKey?: string maxTop?: number getRef?: React.RefObject className?: string multiLine?: boolean style?: React.CSSProperties offsetTop?: number onRow?: (record: T) => TableRowProp } declare module "@zzwing/react-table" { // type definitions goes here class BaseTable extends React.PureComponent> {} class Table extends React.PureComponent> {} class HorizontalScrollBar extends React.Component {} }