import * as tf from '../backend/adapter'; import type { SpectralClusteringParams } from './types'; interface OptimizationConfig { gamma: number; metric: 'calinski-harabasz' | 'davies-bouldin' | 'silhouette'; attempts: number; use_validation: boolean; } interface OptimizationResult { labels: number[]; config: OptimizationConfig; score?: number; } export declare function validation_based_optimization(embedding: tf.Tensor2D, n_clusters: number, metric: 'calinski-harabasz' | 'davies-bouldin' | 'silhouette', attempts: number, random_state?: number): Promise; /** * The embedding is computed once per gamma and reused across all * metric/attempt combinations to avoid redundant eigendecompositions. * * @throws {Error} If every gamma value produces a degenerate embedding so that * no valid clustering is found. */ export declare function intensive_parameter_sweep(X: tf.Tensor2D, params: SpectralClusteringParams, compute_embedding_from_affinity: (affinity_matrix: tf.Tensor2D) => Promise, compute_affinity_matrix: (X: tf.Tensor2D, params: SpectralClusteringParams) => tf.Tensor2D): Promise; export {}; //# sourceMappingURL=spectral_optimization.d.ts.map