import { RenderRow, RowGroupingConfig } from './types';
export { getAggregator, listAggregators, registerAggregator, runAggregator } from '../../core/internal/aggregators';
interface BuildGroupingArgs {
    rows: any[];
    config: RowGroupingConfig;
    expanded: Set<string>;
}
/**
 * Build a flattened grouping projection (collapsed by default).
 * Returns empty array when groupOn not configured or all rows ungrouped.
 *
 * @param args - The grouping arguments
 * @returns Flattened array of render rows (groups + data rows)
 */
export declare function buildGroupedRowModel({ rows, config, expanded }: BuildGroupingArgs): RenderRow[];
/**
 * Toggle expansion state for a group key.
 *
 * @param expandedKeys - Current set of expanded keys
 * @param key - The group key to toggle
 * @returns New set with toggled state
 */
export declare function toggleGroupExpansion(expandedKeys: Set<string>, key: string): Set<string>;
/**
 * Expand all groups.
 *
 * @param rows - The flattened render rows
 * @returns Set of all group keys
 */
export declare function expandAllGroups(rows: RenderRow[]): Set<string>;
/**
 * Collapse all groups.
 *
 * @returns Empty set
 */
export declare function collapseAllGroups(): Set<string>;
/**
 * Get all group keys from a flattened model.
 *
 * @param rows - The flattened render rows
 * @returns Array of group keys
 */
export declare function getGroupKeys(rows: RenderRow[]): string[];
/**
 * Count total rows in a group (including nested groups).
 *
 * @param groupRow - The group row
 * @returns Total row count
 */
export declare function getGroupRowCount(groupRow: RenderRow): number;
//# sourceMappingURL=grouping-rows.d.ts.map