import React from "react";
import { type DataTableBaseCellProps } from "../base-cell/DataTableBaseCell.js";
import { type ResizeProps } from "./useTableColumnResize.js";
interface DataTableColumnHeaderProps extends DataTableBaseCellProps {
    /**
     * Unique identifier for the column. Used when sorting to identify which column is being sorted.
     */
    id: string;
    /**
     * Accessible name of the column.
     */
    label: string;
    /**
     * Makes the column sortable by clicking on the header.
     * The entire header cell content becomes a clickable button when true.
     */
    sortable?: boolean;
    /**
     * Object with props related to column width and resizing. Summary:
     *
     * - `resizable?: boolean` - Whether the column should be resizable by the user.
     * - `autoResizeOnce?: boolean` - Whether the column should automatically resize to fit its content.
     * - `resizeMin?: number` - Minimum width of the column when resizing.
     * - `resizeMax?: number` - Maximum width of the column when resizing.
     * - `value?: number | string` - Controlled width of the column.
     * - `defaultValue?: number | string` - Initial width of the column.
     * - `onChange?: (width: number) => void` - Called when the column width changes.
     *
     * See individual props for details and defaults.
     */
    width?: ResizeProps;
}
/**
 * TODO:
 * - Plan for pinning: Move it into "settings" dialog like here: https://cloudscape.design/examples/react/table.html
 * Toggling `data-block-keyboard-nav` does not work since the created "grid" does not update when toggling this attribute.
 */
declare const DataTableColumnHeader: React.ForwardRefExoticComponent<DataTableColumnHeaderProps & React.RefAttributes<HTMLTableCellElement>>;
export { DataTableColumnHeader };
export type { DataTableColumnHeaderProps };
