import { EC, ECClassHierarchyInspector, ECSchemaProvider, IPrimitiveValueFormatter } from "@itwin/presentation-shared";
import { ParentHierarchyNode } from "../../../HierarchyNode.js";
import { HierarchyNodePropertiesGroupingParams, HierarchyNodePropertyGroup, HierarchyNodePropertyValueRange, ProcessedInstanceHierarchyNode } from "../../IModelHierarchyNode.js";
import { GroupingHandler, GroupingHandlerResult, ProcessedInstancesGroupingHierarchyNode } from "../Grouping.js";
/** @internal */
export interface PropertiesGroupingLocalizedStrings {
    other: string;
    unspecified: string;
}
/** @internal */
export interface PropertyGroupInfo {
    ecClass: EC.Class;
    previousPropertiesGroupingInfo: PreviousPropertiesGroupingInfo;
    propertyGroup: Omit<HierarchyNodePropertyGroup, "propertyValue">;
}
/** @internal */
export type PreviousPropertiesGroupingInfo = Array<{
    propertiesClassName: string;
    propertyName: string;
    isRange?: boolean;
}>;
/** @internal */
export declare function createPropertyGroups(nodesToGroup: ProcessedInstanceHierarchyNode[], nodesAlreadyGrouped: ProcessedInstancesGroupingHierarchyNode[], handlerGroupingParams: PropertyGroupInfo, valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings, classHierarchyInspector: ECClassHierarchyInspector): Promise<GroupingHandlerResult>;
/** @internal */
export declare function getUniquePropertiesGroupInfo(schemaProvider: ECSchemaProvider, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[]): Promise<Array<PropertyGroupInfo>>;
/** @internal */
export declare function doPreviousPropertiesMatch(previousPropertiesGroupingInfo: PreviousPropertiesGroupingInfo, nodesProperties: HierarchyNodePropertiesGroupingParams): boolean;
/** @internal */
export declare function doRangesMatch(ranges1: HierarchyNodePropertyValueRange[] | undefined, ranges2: HierarchyNodePropertyValueRange[] | undefined): boolean;
/** @internal */
export declare function createPropertiesGroupingHandlers(imodelAccess: ECSchemaProvider & ECClassHierarchyInspector, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[], valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings): Promise<GroupingHandler[]>;
//# sourceMappingURL=PropertiesGrouping.d.ts.map