import React from 'react';
import { PopoverCommonProps } from '../common';

export interface PopoverPropsWithContent extends PopoverCommonProps {
  content?: React.ReactNode;
}

export type TableListHeaderColumn = {
  value?: React.ReactNode;
  width?: string | number;
  align?: 'left' | 'center' | 'right';
  sortable?: boolean;
  sortDescending?: boolean;
  infoTooltipProps?: PopoverPropsWithContent;
};

export interface TableListHeaderProps {
  dataHook?: string;
  className?: string;
  options?: TableListHeaderColumn[];
  checkboxState?:
    | 'normal'
    | 'checked'
    | 'indeterminate'
    | 'hasError'
    | 'disabled'
    | 'hidden';
  onCheckboxChange?: () => void;
  onSortChange?(
    colNum: number,
    nativeEvent: React.MouseEvent<HTMLDivElement>,
  ): void;
}

declare const TableListHeader: React.ForwardRefExoticComponent<TableListHeaderProps>;

export default TableListHeader;
