import { KnowledgeGraph } from '../contracts/graph.js'; export interface ImpactOptions { label: string; depth?: number; edgeTypes?: string[]; } export interface ImpactNode { label: string; source_file: string; node_kind?: string; framework_role: string | null; file_type: string; community: number | null; community_label: string | null; distance: number; relation: string; } export interface ImpactResult { target: string; target_file: string; target_file_type?: string; depth: number; direct_dependents: ImpactNode[]; transitive_dependents: ImpactNode[]; affected_files: string[]; affected_communities: Array<{ id: number; label: string; node_count: number; }>; top_paths_per_community: Array<{ id: number; label: string; distance: number; path: string[]; }>; total_affected: number; } export interface CompactImpactNode extends Omit { file_type?: string; } export interface CompactImpactResult extends Omit { direct_dependents: CompactImpactNode[]; transitive_dependents: CompactImpactNode[]; shared_file_type?: string; } export declare function analyzeImpact(graph: KnowledgeGraph, communityLabels: Record, options: ImpactOptions): ImpactResult; export declare function compactImpactResult(result: ImpactResult): CompactImpactResult; export declare function callChains(graph: KnowledgeGraph, source: string, target: string, maxHops?: number, edgeTypes?: string[]): string[][];