import { ConceptNode, ConceptRelation } from './types'; /** * Interface for concept graph operations */ export interface IConceptGraph { /** * Add a node to the graph */ addNode(node: ConceptNode): Promise; /** * Add a relation between nodes */ addRelation(relation: ConceptRelation): Promise; /** * Get a specific node by ID */ getNode(id: string): Promise; /** * Get a specific relation by source and target IDs */ getRelation(sourceId: string, targetId: string): Promise; /** * Get nodes connected to the given node */ getNeighbors(concept: string): Promise; /** * Get all relations for a given node */ getRelations(concept: string): Promise; /** * Get all relations for a given node */ getNodeRelations(nodeId: string): Promise; /** * Find concepts matching a pattern */ findConcepts(pattern: string): Promise; /** * Find relations matching criteria */ findRelations(criteria: { type?: string; source?: string; target?: string; }): Promise; /** * Get all nodes in the graph */ getAllNodes(): Promise; /** * Get all relations in the graph */ getAllRelations(): Promise; /** * Find the shortest path between two concepts */ findPath(source: string, target: string): Promise; /** * Delete a node and all its relations */ deleteNode(id: string): Promise; /** * Delete a relation between nodes */ deleteRelation(relation: ConceptRelation): Promise; /** * Clear the entire graph */ clear(): Promise; }