import { ReactNode, MouseEvent, ComponentPropsWithoutRef } from 'react'; declare type TableAttributes = ComponentPropsWithoutRef<'div'>; export interface TableProps extends TableAttributes { /** * Use this props to insert node right after Table (content with 100% width will have the same width of Table) */ appendNode?: ReactNode; /** * To customize Table style, put on the outermost div Container */ className?: string; /** * To specify data of this table. Check below for details. * @default [] */ data?: TableDataProps[]; /** * To specify meta data for expandable items. Check below for details. * @default [] */ expandableHeader?: ExpandableHeaderProps[]; /** * To specify meta data for header of fixed columns. Check below for details. * @default [] */ fixedHeader?: HeaderProps[]; /** * To specify meta data for header of regular (moving) columns. Check below for details. * @default [] */ header?: HeaderProps[]; /** * To turn on row hover indicator. Highlights row when hovered and turns cursor to pointer. Not advised to be activated in `zebraStripes` mode. */ highlightRowOnHover?: boolean; /** * To specify height of Table, if not specified will take the total height of data rows */ maxHeight?: string; /** * Use this props to insert node right before Table (retains Table's width) */ prependNode?: ReactNode; /** * To set top and bottom paddings of row. You can either customize or set pre-defined values: 'regular' | 'relaxed'. * @default 'regular' */ rowPadding?: string; /** * Use this props to insert node right after Table (retains Table's width) * @default false */ useContainerWidth?: boolean; /** * To set the width of Table, will only work if props `useContainerWidth` is set to false * @default '' */ width?: string; /** * To apply zebraStripes style. Odd rows will have grey bg color, even rows will have white bg color. * @default false */ zebraStripes?: boolean; } export declare type TableHeaderSortIcon = 'ascending' | 'descending' | 'inactive' | 'none'; export interface HeaderProps { content?: ReactNode; showInfoOnHover?: boolean; info?: string; key: string; sortIcon?: TableHeaderSortIcon; width?: string; onSortIconClick?: () => void; } export interface ExpandableHeaderProps extends ComponentPropsWithoutRef<'div'> { key: string; width?: string; } export interface TableDataProps { contents?: TableContentsProps; expandable?: ExpandableProps; selected?: boolean; onClick?: (rowN?: number) => void; [key: string]: any; } export interface ExpandableProps { data?: ExpandableDataProps[]; title?: string; display?: boolean; onLoadMoreClick?: (e: MouseEvent) => void; } export interface ExpandableDataProps { contents: TableContentsProps; } export interface WrapperTooltipProps { showInfoOnHover: boolean; text: string; trigger: 'hover' | 'click'; } export declare type TableContentsProps = Record; export {};