import { ColumnConfig } from '../../core/types';
import { ColumnGroup } from './types';
/**
 * Compute column groups from column configuration.
 * Handles explicit groups (via column.group) and creates implicit groups for ungrouped columns.
 *
 * @param columns - Array of column configurations
 * @returns Array of column groups, or empty if no meaningful groups
 */
export declare function computeColumnGroups<T>(columns: ColumnConfig<T>[]): ColumnGroup<T>[];
/**
 * Apply CSS classes to header cells based on their group membership.
 *
 * @param headerRowEl - The header row element
 * @param groups - The computed column groups
 * @param columns - The column configurations
 */
export declare function applyGroupedHeaderCellClasses(headerRowEl: HTMLElement | null, groups: ColumnGroup[], columns: ColumnConfig[]): void;
/**
 * Build the group header row element.
 *
 * @param groups - The computed column groups
 * @param columns - The column configurations (final array including any plugin-added columns)
 * @returns The group header row element, or null if no groups
 */
export declare function buildGroupHeaderRow(groups: ColumnGroup[], columns: ColumnConfig[]): HTMLElement | null;
/**
 * Check if any columns have group configuration.
 *
 * @param columns - The column configurations
 * @returns True if at least one column has a group
 */
export declare function hasColumnGroups(columns: ColumnConfig[]): boolean;
/**
 * Get group ID for a specific column.
 *
 * @param column - The column configuration
 * @returns The group ID, or undefined if not grouped
 */
export declare function getColumnGroupId(column: ColumnConfig): string | undefined;
//# sourceMappingURL=grouping-columns.d.ts.map