import type { ObjectId } from "./object-types.js"; export interface AggregateObject { properties?: Record; [key: string]: unknown; } export type ClusterAggregateOperation = "count" | "sum" | "min" | "max"; export interface ClusterPropertyDefinition { operation: ClusterAggregateOperation; value?: (object: AggregateObject) => number; filter?: (object: AggregateObject) => boolean; } export type ClusterPropertiesConfig = Record; export interface ClusterAggregateValues { count: number; properties: Record; containsSelected: boolean; } export declare function emptyClusterAggregates(config?: ClusterPropertiesConfig): ClusterAggregateValues; export declare function accumulateClusterAggregates(target: ClusterAggregateValues, object: AggregateObject, id: ObjectId, selectedId: ObjectId | null, config: ClusterPropertiesConfig): void; export declare function finalizeClusterAggregates(values: ClusterAggregateValues, config: ClusterPropertiesConfig): ClusterAggregateValues; export declare function computeClusterAggregates(ids: ObjectId[], objects: Map, selectedId: ObjectId | null, config: ClusterPropertiesConfig): ClusterAggregateValues; //# sourceMappingURL=object-cluster-aggregates.d.ts.map