import { PropsWithChildren, ReactNode } from 'react';
import { TableColumnDefinition, TableHtmlAttributes, TableRowData, TableVerticalAlign } from './Table.types';
export type TableHeaderColumnProps<RowType extends TableRowData> = Omit<TableColumnDefinition<RowType>, 'className' | 'draggable' | 'filter' | 'headerClassName' | 'icon' | 'key' | 'label' | 'resizeable'> & PropsWithChildren<{
    /**
     * Column key for a header that represents a single data column.
     *
     * These are the lowest header cells in the table structure and should
     * therefore use `colSpan={1}`.
     *
     * For these headers, `columnKey` is effectively required because the table
     * derives its body/footer column layout, resize/drag behavior, sorting, and
     * sticky-column logic from these keys.
     *
     * Group header cells that only structure other header cells may omit `columnKey`
     * when they span multiple columns via `colSpan > 1`.
     */
    columnKey?: string;
    /**
     * Optional explicit header label.
     * If omitted, `children` are used.
     */
    label?: ReactNode;
    /**
     * Optional rioglyph class rendered before the header label in table view.
     */
    icon?: string;
    /**
     * Optional custom filter control rendered next to the header label.
     *
     * Intended for table-specific filter dropdowns such as `TableColumnFilter`.
     */
    filter?: ReactNode;
    /**
     * Hides the visible label in table view while preserving `label` for
     * dropdowns, cards, and mobile metadata.
     *
     * @default false
     */
    hideLabel?: boolean;
    /**
     * Number of columns this header cell spans.
     *
     * @default 1
     */
    colSpan?: number;
    /**
     * Number of header rows this cell spans.
     *
     * @default 1
     */
    rowSpan?: number;
    /**
     * Additional class names for this header cell only.
     */
    className?: string;
    /**
     * Additional class names for this header cell only.
     */
    headerClassName?: string;
    /**
     * Enables drag-reordering for this header column in `TABLE` view.
     *
     * When `columnOrder` and `onColumnOrderChange` are provided, reordering is controlled from the outside.
     * When they are omitted, the table keeps the reordered state internally.
     *
     * @default false
     */
    draggable?: boolean;
    /**
     * Enables resizing for this header column in `TABLE` view.
     *
     * When `onColumnResize` is provided, resized widths are controlled from the outside.
     * When it is omitted, the table keeps resized widths internally.
     *
     * @default false
     */
    resizeable?: boolean;
    /**
     * Vertical alignment for this header cell.
     *
     * @default 'middle'
     */
    verticalAlign?: TableVerticalAlign;
} & TableHtmlAttributes>;
declare const TableHeaderColumn: <RowType extends TableRowData = TableRowData>(props: TableHeaderColumnProps<RowType>) => import("react/jsx-runtime").JSX.Element | null;
export default TableHeaderColumn;
