interface IColumnData { key: string; label: string; component?: React.ElementType; normalizer?: (value?: string | number) => string | number | boolean; onCellClick: ( row: RowItems, e: React.MouseEvent ) => void; } interface EventInfoTypes { image: string; name: string; } interface RowItems { id: string | number; date: string; image: string; eventName: string; amount: string; currency: string; timezone?: string; } interface RowPropsTypes { row: RowItems; handleDetailsInfo: (id: string | number) => void; hideDetailsButton: boolean; columns?: IColumnData[]; } type IRowReturnType = { columnProps: IColumnData; component: JSX.Element | string | number | boolean | null; } type ITableBodyType = (row: RowItems) => IRowReturnType