/** * Graph Database Service * Handles persistence and database operations for the knowledge graph */ import { KnowledgeNode, KnowledgeTriad, GraphQuery, GraphMutation, RelationType } from '../types'; export interface IGraphDatabaseService { initializeDatabase(): Promise; createTables(): Promise; saveNode(node: KnowledgeNode): Promise; saveTriad(triad: KnowledgeTriad): Promise; loadNodes(): Promise>; loadTriads(): Promise>; queryNodes(query: GraphQuery): Promise; queryTriads(query: GraphQuery): Promise; mutateGraph(mutation: GraphMutation): Promise; closeConnection(): Promise; } export declare class GraphDatabaseService implements IGraphDatabaseService { private projectPath; private logger; private db; private initialized; private static databaseUnavailable; private static errorNotified; constructor(projectPath: string); /** * Check if database is marked as unavailable */ static isDatabaseUnavailable(): boolean; /** * Reset the database unavailable flag (for retry attempts) */ static resetAvailability(): void; initializeDatabase(): Promise; /** * Create database tables - should only be called during setup phase */ createTables(): Promise; saveNode(node: KnowledgeNode): Promise; saveTriad(triad: KnowledgeTriad): Promise; loadNodes(): Promise>; loadTriads(): Promise>; queryNodes(query: GraphQuery): Promise; queryTriads(query: GraphQuery): Promise; mutateGraph(mutation: GraphMutation): Promise; closeConnection(): Promise; private generateNodeId; private generateTriadId; getNodesByType(nodeType: string, limit?: number): Promise; getTriadsByPredicate(predicate: RelationType, limit?: number): Promise; getNodeConnections(nodeId: string): Promise<{ incoming: KnowledgeTriad[]; outgoing: KnowledgeTriad[]; }>; getNodeNeighbors(nodeId: string): Promise; getSubgraph(nodeIds: string[]): Promise<{ nodes: KnowledgeNode[]; triads: KnowledgeTriad[]; }>; } //# sourceMappingURL=graph-database-service.d.ts.map