import type { VirtualItem, Virtualizer } from '@tanstack/react-virtual';
import type { AriaAttributes, CSSProperties, DragEventHandler, KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react';
import type { ColumnType } from '../types/ColumnType.js';
import type { DivWithCustomScrollProp } from '../types/index.js';
export interface ColumnHeaderProps {
    visibleColumnIndex: number;
    onSort?: (e: CustomEvent<{
        column: unknown;
        sortDirection: string;
    }>) => void;
    onGroupBy?: (e: CustomEvent<{
        column: unknown;
        isGrouped: boolean;
    }>) => void;
    onDragStart: DragEventHandler<HTMLDivElement>;
    onDragOver: DragEventHandler<HTMLDivElement>;
    onDrop: DragEventHandler<HTMLDivElement>;
    onDragEnter: DragEventHandler<HTMLDivElement>;
    onDragEnd: DragEventHandler<HTMLDivElement>;
    dragOver: boolean;
    isDraggable: boolean;
    headerTooltip: string;
    virtualColumn: VirtualItem<HTMLDivElement>;
    columnVirtualizer: Virtualizer<DivWithCustomScrollProp, Element>;
    isRtl: boolean;
    children: ReactNode | ReactNode[];
    columnId?: string;
    showVerticalEndBorder: boolean;
    id: string;
    onClick: MouseEventHandler<HTMLDivElement> | undefined;
    onKeyDown?: KeyboardEventHandler<HTMLDivElement> | undefined;
    onKeyUp?: KeyboardEventHandler<HTMLDivElement> | undefined;
    className: string;
    style: CSSProperties;
    column: ColumnType;
    role: string;
    isFiltered?: boolean;
    title?: string;
    ['aria-sort']?: AriaAttributes['aria-sort'];
    ['aria-label']?: AriaAttributes['aria-label'];
}
export declare const ColumnHeader: {
    (props: ColumnHeaderProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
