export interface FanMetric {
    file: string;
    count: number;
    connections: string[];
}
export interface FanInFanOutResult {
    fan_in_top: FanMetric[];
    fan_out_top: FanMetric[];
    hub_files: FanMetric[];
    coupling_score: number;
    total_files: number;
    total_edges: number;
}
export interface CoChangePair {
    file_a: string;
    file_b: string;
    co_commits: number;
    jaccard: number;
    support_a: number;
    support_b: number;
}
export interface CoChangeResult {
    pairs: CoChangePair[];
    clusters: string[][];
    total_commits_analyzed: number;
    period: string;
}
export declare function fanInFanOut(repo: string, options?: {
    path?: string;
    top_n?: number;
    level?: "file";
    min_fan_in?: number;
    min_fan_out?: number;
}): Promise<FanInFanOutResult>;
export declare function computeCoChangePairs(repoRoot: string, options?: {
    since_days?: number;
    min_support?: number;
    max_files_per_commit?: number;
}): {
    pairs: CoChangePair[];
    total_commits: number;
};
export declare function coChangeAnalysis(repo: string, options?: {
    since_days?: number;
    min_support?: number;
    min_jaccard?: number;
    path?: string;
    top_n?: number;
}): Promise<CoChangeResult>;
//# sourceMappingURL=coupling-tools.d.ts.map