/** * Smart Resource Clustering (Phase 4.2 of #90) * * Provides: * - Hybrid clustering algorithm (connectivity + semantic) * - Cluster optimization via resource moves * - Size constraint enforcement * * Uses analysis from analysis.ts to make intelligent grouping decisions. */ import type { TemplateDocument } from '../types/template.js'; import type { DependencyGraph } from './graph.js'; import { type ConnectionStrength, type ClusterScore } from './analysis.js'; /** * Options for clustering algorithm. */ export interface ClusteringOptions { /** Maximum resources per cluster (default: 400, 80% of limit) */ maxClusterSize?: number; /** Minimum cluster quality score to accept (0-1, default: 0.3) */ minQuality?: number; /** Strategy: 'connectivity' | 'semantic' | 'hybrid' */ strategy?: 'connectivity' | 'semantic' | 'hybrid'; } /** * A resource cluster with metadata. */ export interface ResourceCluster { id: string; name: string; category: string; resourceIds: string[]; resourceTypes: Record; score: ClusterScore; } /** * Cluster resources using dependency analysis + semantic grouping. * Returns optimized clusters ready for stack splitting. */ export declare function clusterResources(template: TemplateDocument, graph: DependencyGraph, options?: ClusteringOptions): ResourceCluster[]; /** * Refine clusters to improve quality scores and satisfy constraints. */ export declare function optimizeClusters(clusters: ResourceCluster[], graph: DependencyGraph, connectivity: Map): ResourceCluster[]; /** * Enforce size constraints by splitting oversized clusters. */ export declare function enforceConstraints(clusters: ResourceCluster[], graph: DependencyGraph, maxSize: number): ResourceCluster[]; //# sourceMappingURL=clustering.d.ts.map