/** * Graph Query Manager * Handles all query operations and search functionality */ import { KnowledgeNode, KnowledgeTriad, GraphQuery, NodeType, RelationType } from '../types'; import { IGraphDatabaseService } from '../services/graph-database-service'; import { IGraphStateManager } from './graph-state-manager'; export interface IGraphQueryManager { queryNodes(query: GraphQuery, databaseService: IGraphDatabaseService, stateManager: IGraphStateManager): Promise; queryTriads(query: GraphQuery, databaseService: IGraphDatabaseService, stateManager: IGraphStateManager): Promise; queryNodesInMemory(query: GraphQuery, stateManager: IGraphStateManager): KnowledgeNode[]; queryTriadsInMemory(query: GraphQuery, stateManager: IGraphStateManager): KnowledgeTriad[]; findNodeById(id: string, stateManager: IGraphStateManager): KnowledgeNode | undefined; findTriadById(id: string, stateManager: IGraphStateManager): KnowledgeTriad | undefined; findNodesByType(type: NodeType, stateManager: IGraphStateManager): KnowledgeNode[]; findTriadsByRelation(relation: RelationType, stateManager: IGraphStateManager): KnowledgeTriad[]; findConnectedNodes(nodeId: string, stateManager: IGraphStateManager): string[]; findNodesByMetadata(metadata: Record, stateManager: IGraphStateManager): KnowledgeNode[]; findTriadsBySubject(subjectId: string, stateManager: IGraphStateManager): KnowledgeTriad[]; findTriadsByObject(objectId: string, stateManager: IGraphStateManager): KnowledgeTriad[]; findShortestPath(startId: string, endId: string, stateManager: IGraphStateManager): string[]; getQueryStats(stateManager: IGraphStateManager): { totalNodes: number; totalTriads: number; averageDegree: number; maxDegree: number; nodeTypeDistribution: Record; relationTypeDistribution: Record; }; } export declare class GraphQueryManager implements IGraphQueryManager { private logger; queryNodes(query: GraphQuery, databaseService: IGraphDatabaseService, stateManager: IGraphStateManager): Promise; queryTriads(query: GraphQuery, databaseService: IGraphDatabaseService, stateManager: IGraphStateManager): Promise; queryNodesInMemory(query: GraphQuery, stateManager: IGraphStateManager): KnowledgeNode[]; queryTriadsInMemory(query: GraphQuery, stateManager: IGraphStateManager): KnowledgeTriad[]; findNodeById(id: string, stateManager: IGraphStateManager): KnowledgeNode | undefined; findTriadById(id: string, stateManager: IGraphStateManager): KnowledgeTriad | undefined; findNodesByType(type: NodeType, stateManager: IGraphStateManager): KnowledgeNode[]; findTriadsByRelation(relation: RelationType, stateManager: IGraphStateManager): KnowledgeTriad[]; findConnectedNodes(nodeId: string, stateManager: IGraphStateManager): string[]; findNodesByMetadata(metadata: Record, stateManager: IGraphStateManager): KnowledgeNode[]; findTriadsBySubject(subjectId: string, stateManager: IGraphStateManager): KnowledgeTriad[]; findTriadsByObject(objectId: string, stateManager: IGraphStateManager): KnowledgeTriad[]; /** * Find nodes within N degrees of separation from a starting node */ findNodesWithinDegrees(startNodeId: string, degrees: number, stateManager: IGraphStateManager): string[]; /** * Find shortest path between two nodes */ findShortestPath(startNodeId: string, endNodeId: string, stateManager: IGraphStateManager): string[]; /** * Find all cycles in the graph starting from a node */ findCycles(startNodeId: string, stateManager: IGraphStateManager, maxDepth?: number): string[][]; /** * Get node degree (number of connections) */ getNodeDegree(nodeId: string, stateManager: IGraphStateManager): { in: number; out: number; total: number; }; /** * Find hub nodes (nodes with high degree) */ findHubNodes(stateManager: IGraphStateManager, threshold?: number): Array<{ nodeId: string; degree: number; }>; private matchesMetadata; private matchesNodeFilter; /** * Get query performance statistics */ getQueryStats(stateManager: IGraphStateManager): { totalNodes: number; totalTriads: number; averageDegree: number; maxDegree: number; nodeTypeDistribution: Record; relationTypeDistribution: Record; }; } //# sourceMappingURL=graph-query-manager.d.ts.map