import { ReactNode, Ref } from 'react';
import { ColumnDef, ColumnKey, SortState } from './types';
type ColumnKeyMap = Map<ColumnKey, number>;
export interface DataListTableHeaderProps<TData> {
    allSelected: boolean;
    columnOrder: ColumnKey[];
    /** Columns rendered in this pane (frozen = sticky + order; scroll = non-sticky). */
    paneColumns: ColumnDef<TData>[];
    paneMinWidth: number;
    someSelected: boolean;
    sortState: SortState | null;
    /** Horizontal gap (px) between data cells — must match `columnGapPx` on `DataListTable`. */
    columnGapPx?: number;
    /** When set (responsive table), fixed pixel width per data column. */
    columnWidthPxByKey?: ColumnKeyMap;
    features?: {
        checkboxRail?: boolean;
        columnReorder?: boolean;
        rowComment?: boolean;
        rowMenu?: boolean;
    };
    /**
     * Ref to the header row DOM node (role="row", data-testid="data-list-table-header-row").
     * DataListTable passes this to measure rendered height for StickyInnerElement padding and
     * ListRowSingle top offsets. Optional: omit when using DataListTableHeader outside DataListTable.
     */
    headerRowRef?: Ref<HTMLDivElement>;
    /** Checkbox rail only on the frozen pane. */
    includeCheckboxRail?: boolean;
    /** Comment + menu header placeholders on the scroll pane. */
    includeRightRails?: boolean;
    /** Right border after this column when it is the last sticky (frozen) column. */
    lastStickyColumnKey?: ColumnKey;
    maxWidthByColumnKey?: Partial<Record<ColumnKey, number>>;
    stickyLeftOffsets?: ColumnKeyMap;
    onColumnOrderChange?: (order: ColumnKey[]) => void;
    onSortChange?: (next: SortState | null) => void;
    onToggleAll?: () => void;
    renderCheckboxRailHeader?: () => ReactNode;
    renderRowCommentHeader?: () => ReactNode;
}
declare function DataListTableHeaderInner<TData>({ headerRowRef, paneColumns, maxWidthByColumnKey, sortState, onSortChange, features, onColumnOrderChange, columnOrder, paneMinWidth, allSelected, someSelected, onToggleAll, renderCheckboxRailHeader, renderRowCommentHeader, includeCheckboxRail, includeRightRails, stickyLeftOffsets, lastStickyColumnKey, columnWidthPxByKey, columnGapPx, }: DataListTableHeaderProps<TData>): import("react/jsx-runtime").JSX.Element;
export declare const DataListTableHeader: typeof DataListTableHeaderInner;
export {};
