import type Database from 'better-sqlite3'; import type { AnnotatedEdgeInfo, AnnotatedSymbolInfo } from '../schema.js'; export interface HighConnectivitySymbol { id: number; name: string; kind: string; filePath: string; incomingDeps: number; outgoingDeps: number; } export interface NeighborhoodResult { nodes: AnnotatedSymbolInfo[]; edges: AnnotatedEdgeInfo[]; } export interface UnannotatedSymbol { id: number; name: string; kind: string; filePath: string; line: number; endLine: number; dependencyCount: number; } export interface UnannotatedSymbolsResult { symbols: UnannotatedSymbol[]; total: number; } /** * Repository for graph analysis operations. */ export declare class GraphRepository { private db; private deps; private metadata; private relationships; private definitions; constructor(db: Database.Database); /** * Find strongly connected components (cycles) among unannotated symbols. * Uses Tarjan's algorithm to detect groups of mutually dependent symbols. */ findCycles(aspect: string): number[][]; /** * Get call graph neighborhood for a starting definition. */ getNeighborhood(startId: number, maxDepth: number, maxNodes: number): NeighborhoodResult; /** * Get high-connectivity symbols (many incoming/outgoing deps). */ getHighConnectivitySymbols(options?: { minIncoming?: number; minOutgoing?: number; exported?: boolean; limit?: number; }): HighConnectivitySymbol[]; /** * Check if an edge exists between two definitions in the call graph. */ edgeExists(fromId: number, toId: number): boolean; /** * Resolve which definition ID a given target name refers to, * using import paths to disambiguate when multiple definitions share the same name. */ private resolveInheritanceTarget; /** * Create relationship annotations for inheritance edges. */ createInheritanceRelationships(): { created: number; }; /** * Get the next unannotated symbols for an aspect. */ getNextToAnnotate(aspect: string, options?: { limit?: number; kind?: string; filePattern?: string; }): { symbols: UnannotatedSymbol[]; total: number; }; /** * Get all unannotated symbols for an aspect. */ getAllUnannotated(aspect: string, options?: { limit?: number; kind?: string; filePattern?: string; excludePattern?: string; }): UnannotatedSymbolsResult; private getCallGraph; } //# sourceMappingURL=graph-repository.d.ts.map