import { RefObject, default as React } from 'react';
import { ColumnConfig, SortConfig, FilterConfig } from '../../../../shared/types/table';
export interface TableHeaderProps<T = unknown> {
    columns: ColumnConfig<T>[];
    /** Anchos medidos en `TableContent` (ResizeObserver sobre `<thead>`). */
    columnWidthsRef?: RefObject<Map<string, number>>;
    sortConfig?: SortConfig;
    filters?: FilterConfig[];
    showSelection?: boolean;
    showExpand?: boolean;
    allSelected?: boolean;
    someSelected?: boolean;
    resizable?: boolean;
    stickyHeader?: boolean;
    stickyCheckbox?: boolean;
    stickyActions?: boolean;
    onSelectAll?: (selected: boolean) => void;
    onSort?: (columnId: string) => void;
    onFilter?: (columnId: string) => void;
    onLock?: (columnId: string) => void;
    onResize?: (columnId: string, width: number, defaultWidthAtStart?: number) => void;
    onResizeDoubleClick?: (columnId: string) => void;
    onResizeHover?: (columnId: string, isHovering: boolean) => void;
    /** Clave que cambia cuando cambian las filas (p. ej. paginación); fuerza recalcular anchos auto. */
    rowsDataKey?: string;
    hasColumnMaxWidthAuto?: boolean;
    /** Por defecto de bloqueo a nivel tabla; las columnas pueden anular con `lockable`. */
    columnsLockable?: boolean;
}
export declare const TableHeader: <T>(props: TableHeaderProps<T> & React.RefAttributes<HTMLTableSectionElement>) => React.ReactElement | null;
//# sourceMappingURL=TableHeader.d.ts.map