import { Trimmed, TrimmedEntity } from "../../store/index";
import type { DataType } from "../../types/index";
export declare const TRIMMED_GROUPING = "grouping";
/**
 * Prepare trimming updated indexes for grouping
 * @param initiallyTrimed
 * @param firstLevelMap
 * @param secondLevelMap
 */
export declare function processDoubleConversionTrimmed(initiallyTrimed: Trimmed, firstLevelMap: Record<number, number>, secondLevelMap?: Record<number, number>): Trimmed;
/**
 * Preserves data-row filter results and recalculates group-row visibility
 * from the filtered state of each group's descendant data rows.
 *
 * @param source - Grouped row source that contains group rows and data rows.
 * @param filterTrimmed - Current filter trim map keyed by physical row index.
 * @returns Filter trim map with empty group rows hidden and matching group rows visible.
 */
export declare function filterOutEmptyGroupRows(source: DataType[], filterTrimmed: TrimmedEntity): TrimmedEntity;
/**
 * Builds grouping trims from an explicit group-to-children map by hiding
 * groups whose children are all hidden by any active trim type.
 *
 * @param allTrimmedGroups - Active trim maps keyed by trim type.
 * @param childrenByGroup - Child row indexes keyed by group row index.
 * @returns Grouping trim map that hides groups without visible children.
 */
export declare function filterOutEmptyGroups(allTrimmedGroups: Trimmed, childrenByGroup?: Record<number, number[]>): TrimmedEntity;
