import * as React from 'react'; import { IContainer } from '.'; export interface TableHeaderModel { title: string | number | React.ReactNode; textAlign?: 'left' | 'right' | 'center'; classNames?: string; key?: string | undefined | null; disableSort?: boolean; } interface IColumnOptions { stretch?: boolean; singleLineFit?: boolean; colSpan?: number; tdClass?: string; } export interface TableRowModel { rowContents?: (React.ReactNode | number | string)[]; rowValues?: (number | string)[]; rowColOptions?: (IColumnOptions | undefined)[]; groupId?: string; itemId?: string; disabledRow?: boolean; rawRowContent?: any; onClick?: (tableRow: TableRowModel) => void; } export interface TableRowHeaderModel { rowHeaderContents?: any[]; rowColOptions?: (IColumnOptions | undefined)[]; groupId?: string; rawRowHeaderContent?: any; } interface IProps extends IContainer { columnColor: 'white' | 'grey'; variant: 'basic' | 'bordered'; columnHeaders: TableHeaderModel[]; rows: (TableRowModel | TableRowHeaderModel)[]; gutter: number; sortMode: 'frontend' | 'backend' | 'none'; sortColumnMode: 'multi' | 'single'; showInitialSortingIcon: boolean; selectable: boolean; disabled: boolean; selectedItemIds: string[]; onSelectedItemsChanged: (selectedItemIds: string[]) => void; onSorting: (sortingItems: ISort[]) => void; loadMoreOption: { hasMore?: boolean; containerHeight?: number; customLoadControl?: React.ReactNode; customLoadTargetClass?: string; customLoadingControl?: React.ReactNode; loadMoreMode?: 'manual' | 'auto'; onLoadMore?: () => void; }; fixedHeader: boolean; } interface ISort { column: string; columnIndex: number; order: 'ASC' | 'DESC' | undefined; } interface IState { selectedIds: string[]; isLoadingMore: boolean; sorts: ISort[]; rows: (TableRowModel | TableRowHeaderModel)[]; } export declare class Table extends React.Component { static defaultProps: { variant: string; columnHeaders: undefined; sortMode: string; sortColumnMode: string; showInitialSortingIcon: boolean; selectable: boolean; disabled: boolean; selectedItemIds: never[]; gutter: number; loadMoreOption: undefined; onSelectedItemsChanged: () => undefined; onSorting: () => undefined; fixedHeader: boolean; columnColor: string; }; constructor(props: IProps); componentDidUpdate(prevProps: IProps): void; render(): React.JSX.Element; getSelectedItemIds(): string[]; private getTableBody; private getSortArrow; private onSorting; private compareData; private getRowDesign; private isRowHeader; private isAllSelected; private isGroupSelected; private onCheckboxChanged; private getContentWrapperStyle; private getCheckboxControl; private getLoadMoreRow; private onLoadMoreClicked; private getInnerLoaderContainerHeight; private onScrolling; } export {};