/**
 * Feature Cluster Processor
 *
 * Builds a stable, human-facing feature layer over the raw code graph.
 * Communities are graph-algorithm clusters; FeatureCluster nodes are
 * product/domain clusters such as Settings, AI, Auth, Billing, MCP, or
 * Ingestion. Agents can query this layer first to land directly on the
 * files, symbols, and line ranges that matter for a task.
 */
import type { FeatureClusterKind } from '../../_shared/index.js';
import { KnowledgeGraph } from '../graph/types.js';
export interface FeatureClusterNode {
    id: string;
    name: string;
    slug: string;
    featureKind: FeatureClusterKind;
    summary: string;
    description: string;
    repo?: string;
    service?: string;
    signals: string[];
    memberCount: number;
    entryPointIds: string[];
    routes: string[];
    tools: string[];
    testCoverageHints: string[];
    lastIndexedCommit?: string;
    confidence: number;
    memberIds: string[];
}
export interface FeatureClusterMembership {
    nodeId: string;
    clusterId: string;
    confidence: number;
    signals: string[];
}
export interface FeatureClusterDependency {
    sourceClusterId: string;
    targetClusterId: string;
    edgeCount: number;
    relationshipTypes: string[];
    confidence: number;
}
export interface FeatureClusterDetectionResult {
    clusters: FeatureClusterNode[];
    memberships: FeatureClusterMembership[];
    dependencies: FeatureClusterDependency[];
    stats: {
        totalClusters: number;
        totalMemberships: number;
        totalDependencies: number;
        nodesProcessed: number;
    };
}
export interface FeatureClusterConfig {
    minMembers: number;
    maxClusters: number;
    repo?: string;
    service?: string;
    lastIndexedCommit?: string;
}
export declare const processFeatureClusters: (knowledgeGraph: KnowledgeGraph, onProgress?: (message: string, progress: number) => void, config?: Partial<FeatureClusterConfig>) => Promise<FeatureClusterDetectionResult>;
