import { type GridFilterState, type GridGroupNode, type GridRowId, type GridRowTreeConfig, type GridRowsState, type GridTreeNode } from '@mui/x-data-grid';
import type { GridTreeDepths } from '@mui/x-data-grid/internals';
import type { RowTreeBuilderGroupingCriterion } from "./models.js";
import type { DataGridProProps } from "../../models/dataGridProProps.js";
import type { GridStatePro } from "../../models/gridStatePro.js";
export declare const getGroupRowIdFromPath: (path: RowTreeBuilderGroupingCriterion[]) => string;
export declare const getNodePathInTree: ({
  id,
  tree
}: {
  id: GridRowId;
  tree: GridRowTreeConfig;
}) => RowTreeBuilderGroupingCriterion[];
export declare const checkGroupChildrenExpansion: (node: GridGroupNode, defaultGroupingExpansionDepth: number, maxDepth?: number, isGroupExpandedByDefault?: DataGridProProps["isGroupExpandedByDefault"], prevChildrenExpanded?: boolean) => boolean;
export declare const updateGroupDefaultExpansion: (node: GridGroupNode, defaultGroupingExpansionDepth: number, maxDepth?: number, isGroupExpandedByDefault?: DataGridProProps["isGroupExpandedByDefault"], prevChildrenExpanded?: boolean) => GridGroupNode;
/**
 * Insert a node in the tree
 */
export declare const insertNodeInTree: (node: GridTreeNode, tree: GridRowTreeConfig, treeDepths: GridTreeDepths, previousTree: GridRowTreeConfig | null) => void;
/**
 * Removes a node from the tree
 */
export declare const removeNodeFromTree: ({
  node,
  tree,
  treeDepths
}: {
  node: GridTreeNode;
  tree: GridRowTreeConfig;
  treeDepths: GridTreeDepths;
}) => void;
/**
 * Updates the `id` and `isAutoGenerated` properties of a group node.
 */
export declare const updateGroupNodeIdAndAutoGenerated: ({
  node,
  updatedNode,
  previousTree,
  tree,
  treeDepths
}: {
  previousTree: GridRowTreeConfig | null;
  node: GridGroupNode;
  updatedNode: Pick<GridGroupNode, "id" | "isAutoGenerated">;
  tree: GridRowTreeConfig;
  treeDepths: GridTreeDepths;
}) => void;
export declare const getVisibleRowsLookup: ({
  tree,
  filteredRowsLookup
}: {
  tree: GridRowsState["tree"];
  filteredRowsLookup: GridFilterState["filteredRowsLookup"];
}) => GridStatePro["visibleRowsLookup"];