import { Observable } from "rxjs"; import { ECClassHierarchyInspector, ECSchemaProvider, IPrimitiveValueFormatter } from "@itwin/presentation-shared"; import { ParentHierarchyNode } from "../../HierarchyNode.js"; import { ProcessedGroupingHierarchyNode, ProcessedHierarchyNode, ProcessedInstanceHierarchyNode } from "../IModelHierarchyNode.js"; import { PropertiesGroupingLocalizedStrings } from "./grouping/PropertiesGrouping.js"; /** @internal */ export declare const LOGGING_NAMESPACE: string; /** @internal */ export declare function createGroupingOperator(imodelAccess: ECSchemaProvider & ECClassHierarchyInspector, parentNode: ParentHierarchyNode | undefined, valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings, onNodesGrouped?: (groupingResult: GroupingHandlerResult | undefined, handler: GroupingHandler) => void, onGroupingNodeCreated?: (groupingNode: ProcessedGroupingHierarchyNode) => void, groupingHandlers?: GroupingHandler[]): (nodes: Observable) => Observable; /** @internal */ export type ProcessedInstancesGroupingHierarchyNode = Omit & { children: ProcessedInstanceHierarchyNode[]; }; /** @internal */ export interface GroupingHandlerResult { /** Expected to be sorted by label. */ grouped: Array; /** Expected to be sorted by label. */ ungrouped: ProcessedInstanceHierarchyNode[]; groupingType: GroupingType; } /** @internal */ export type GroupingType = "label" | "class" | "base-class" | "property"; /** @internal */ export type GroupingHandler = (nodesToGroup: ProcessedInstanceHierarchyNode[], nodesAlreadyGrouped: ProcessedInstancesGroupingHierarchyNode[]) => Promise; //# sourceMappingURL=Grouping.d.ts.map