import React from 'react';
import { ColumnWidthStyle } from '../column-widths-utils';
import { TableProps } from '../interfaces';
import { StickyColumnsModel } from '../sticky-columns';
import { TableRole } from '../table-role';
import { SortingStatus } from './utils';
export interface TableThElementProps {
  resizableStyle?: ColumnWidthStyle;
  sortingStatus?: SortingStatus;
  sortingDisabled?: boolean;
  focusedComponent?: null | string;
  stuck?: boolean;
  sticky?: boolean;
  resizable?: boolean;
  hidden?: boolean;
  stripedRows?: boolean;
  isSelection?: boolean;
  colIndex: number;
  columnId: PropertyKey;
  stickyState: StickyColumnsModel;
  cellRef?: React.RefCallback<HTMLElement> | null;
  tableRole: TableRole;
  children: React.ReactNode;
  variant: TableProps.Variant;
  tableVariant?: TableProps.Variant;
  ariaLabel?: string;
  colSpan?: number;
  rowSpan?: number;
  scope?: 'col' | 'colgroup';
  columnGroupId?: string;
  isLast?: boolean;
  /** Additional className to merge (e.g. boundary shadow classes from a secondary sticky subscription). */
  className?: string;
  /** Additional ref for boundary sticky subscription (imperatively updates shadow classes). */
  boundaryRef?: React.RefCallback<HTMLElement>;
}
export declare function TableThElement({
  resizableStyle,
  sortingStatus,
  sortingDisabled,
  focusedComponent,
  stuck,
  sticky,
  resizable,
  hidden,
  stripedRows,
  isSelection,
  colIndex,
  columnId,
  stickyState,
  cellRef,
  tableRole,
  children,
  variant,
  ariaLabel,
  tableVariant,
  colSpan,
  rowSpan,
  scope,
  columnGroupId,
  isLast,
  className,
  boundaryRef,
  ...props
}: TableThElementProps): JSX.Element;