import React from 'react'; import PropTypes from 'prop-types'; import { PinnedColumnsProp, TableRequestMoveColumnHandler } from '@splunk/react-ui/Table'; import { ComponentProps } from '../utils/types'; type HeadAutosizeColumnHandler = (event: React.MouseEvent, data: { columnId?: string; id?: string; index: number; }) => void; type HeadRequestMoveColumnHandler = TableRequestMoveColumnHandler; type HeadRequestResizeColumnHandler = (event: React.KeyboardEvent | MouseEvent, data: { columnId?: string; id?: string; index: number; width: number; }) => void; interface HeadPropsBase { /** @private. */ actions?: React.ReactNode[]; /** @private. */ actionsColumnWidth?: number; /** @private. The minimum width of each column */ cellMinWidth?: number; /** * Must be `Table.HeadCell`s or `Table.HeadDropdownCell`s. */ children?: React.ReactNode; /** * A React ref which is set to the DOM element when the component mounts and null when it unmounts. */ elementRef?: React.Ref; /** @private. */ hasDragColumn?: boolean; /** @private. */ hasInfoColumn?: boolean; /** @private. */ onAutosizeColumn?: HeadAutosizeColumnHandler; /** @private. */ onRequestMoveColumn?: HeadRequestMoveColumnHandler; /** @private. */ onRequestResizeColumn?: HeadRequestResizeColumnHandler; /** @private. */ onRequestToggleAllRows?: () => void; /** @private. */ pinnedColumns?: PinnedColumnsProp; /** @private. */ rowSelection?: 'all' | 'some' | 'none'; } type HeadProps = ComponentProps; declare const getCellWidths: (headEl: HTMLTableSectionElement | null) => number[]; declare function Head({ actions, actionsColumnWidth, cellMinWidth, children, elementRef, hasDragColumn, hasInfoColumn, pinnedColumns, onAutosizeColumn, onRequestMoveColumn, onRequestResizeColumn, onRequestToggleAllRows, rowSelection, ...otherProps }: HeadProps): React.JSX.Element; declare namespace Head { var propTypes: { /** @private. */ actions: PropTypes.Requireable; /** @private. */ actionsColumnWidth: PropTypes.Requireable; /** @private */ cellMinWidth: PropTypes.Requireable; children: PropTypes.Requireable; elementRef: PropTypes.Requireable; /** @private. */ hasDragColumn: PropTypes.Requireable; /** @private. */ hasInfoColumn: PropTypes.Requireable; /** @private. */ onAutosizeColumn: PropTypes.Requireable<(...args: any[]) => any>; /** @private. */ onRequestMoveColumn: PropTypes.Requireable<(...args: any[]) => any>; /** @private. */ onRequestResizeColumn: PropTypes.Requireable<(...args: any[]) => any>; /** @private. */ onRequestToggleAllRows: PropTypes.Requireable<(...args: any[]) => any>; /** @private. */ pinnedColumns: PropTypes.Requireable; /** @private. */ rowSelection: PropTypes.Requireable; }; var splunkUiType: string; } export default Head; export { HeadAutosizeColumnHandler, HeadRequestMoveColumnHandler, HeadRequestResizeColumnHandler, getCellWidths, };