import React, { CSSProperties, JSX } from 'react';
export type TableDataItemBase = Record<string, any>;
export type TableColumnRender<Item extends TableDataItemBase> = (value: Item[keyof Item], rowData: Item, rowIndex: number) => JSX.Element | void;
export type TableAbstractColumn<TableDataItem> = {
    style: CSSProperties | undefined;
    prop: keyof TableDataItem;
    label: React.ReactNode | string;
    text?: React.ReactNode | string;
    filter?: string;
    className: string;
    width?: number;
    align?: any;
    color?: string;
    noWrap?: boolean;
    fontSize?: string | number;
    options?: any[];
    stickyHeader?: boolean;
    renderHandler: TableColumnRender<TableDataItemBase>;
};
export type TableOnRowClick<TableDataItem> = (rowData: TableDataItem, rowIndex: number) => void;
export type TableOnCellClick<TableDataItem> = (cellValue: TableDataItem[keyof TableDataItem], rowIndex: number, colunmIndex: number) => void;
export type TableOnChange<TableDataItem> = (data: Array<TableDataItem>) => void;
export type TableRowClassNameHandler<TableDataItem> = (rowData: TableDataItem, rowIndex: number) => string;
