import React from "react"; import { ColumnDefinition } from "./ColumnDefinition"; import { ColumnDefinitionElement } from "./ColumnDefinition.definitions"; export interface DataTableProps { items: Array; itemKey?: (item: T) => string; isLoading?: boolean; placeholder?: React.ReactNode; preferedColumns?: Array; updatePreferenceWithNewColumns?: (colkeys: Array) => void; columnDataCreationContext?: C; selectedItemKey?: string; onRowClick?: (item: T) => void; hasHoverStyle: boolean; defaultSortColumn?: string; stickyHeader: boolean; onItemsReordered?: (items: T[]) => void; children?: Array> | undefined | null | false> | React.ReactElement> | null | false; hasFooter?: boolean; } interface DataTableState { sortingFn?: (a: T, b: T) => number; sortingAsc: boolean; columnDefinitions?: Array>; sortingKey?: React.Key; dragTarget?: number; draggingItem?: number; } export declare class DataTable extends React.Component, DataTableState> { state: DataTableState; static defaultProps: { hasHoverStyle: boolean; stickyHeader: boolean; }; constructor(props: DataTableProps); resetSort: () => void; private updateColumnOrderAccPreference; private renderRows; render(): {}; private onDragEnd; private setSortingFn; private static isValidColumnItem; private validateChildren; private createHeaderColSpans; private createSortIcon; private createHeader; private createFooter; private createSubHeader; } export {};