import { Store } from './store.js';
import './store-interface.js';
import './graph.js';
import '../types.js';

interface FileMetrics {
    path: string;
    language: string;
    afferent: number;
    efferent: number;
    instability: number;
}
declare function calculateMetrics(store: Store, options?: {
    repo?: string;
    language?: string;
    verifiedOnly?: boolean;
}): FileMetrics[];
interface GraphMetrics {
    density: number;
    transitivity: number;
}
declare function calculateGraphMetrics(store: Store, repo?: string): GraphMetrics;
interface ClusterMetrics {
    clusterName: string;
    fileCount: number;
    afferentCoupling: number;
    efferentCoupling: number;
    instability: number;
    internalEdges: number;
    externalEdges: number;
    cohesionRatio: number;
    abstractness: number;
    distanceFromMainSeq: number;
}
interface DependencyMatrix {
    clusterNames: string[];
    matrix: number[][];
    dominantTypes: string[][];
}
declare function calculateClusterMetrics(store: Store, repo: string): ClusterMetrics[];
declare function calculateDSM(store: Store, repo: string): DependencyMatrix;

export { type ClusterMetrics, type DependencyMatrix, type FileMetrics, type GraphMetrics, calculateClusterMetrics, calculateDSM, calculateGraphMetrics, calculateMetrics };
