/** * Neo4j storage adapter * * Production-ready graph storage using Neo4j graph database * with full Cypher query support and connection pooling. * * @packageDocumentation */ import type { SkillNode, SkillId, SkillNodeInput, SkillNodeUpdate, PrerequisiteEdge, EdgeId, PrerequisiteEdgeInput, GraphStorage, StorageConfig, ConnectionStatus, ImportResult, GraphExport, GraphStats, Subgraph, SkillQuery } from '../types/index.js'; /** * Neo4j storage adapter. * * Production-ready graph storage with full CRUD operations, * connection pooling, and optimized Cypher queries. * * @example * ```typescript * import { Neo4jStorage } from 'learngraph/storage'; * * const storage = new Neo4jStorage(); * await storage.connect({ * backend: 'neo4j', * uri: 'bolt://localhost:7687', * username: 'neo4j', * password: 'password', * database: 'learngraph', * }); * * // Create a skill * const skill = await storage.createSkill({ * name: 'Add Fractions', * description: 'Add fractions with like denominators', * bloomLevel: 'apply', * difficulty: 0.4, * isThresholdConcept: false, * masteryThreshold: 0.8, * estimatedMinutes: 30, * tags: ['math', 'fractions'], * metadata: {}, * }); * * // Query the graph * const prerequisites = await storage.getPrerequisitesOf(skill.id); * ``` */ export declare class Neo4jStorage implements GraphStorage { private driver; private config; private _connected; private getSession; private runQuery; private recordToSkill; private recordToEdge; connect(config: StorageConfig): Promise; private initializeSchema; disconnect(): Promise; isConnected(): boolean; getStatus(): Promise; createSkill(input: SkillNodeInput): Promise; getSkill(id: SkillId): Promise; getSkills(ids: SkillId[]): Promise; updateSkill(id: SkillId, updates: SkillNodeUpdate): Promise; deleteSkill(id: SkillId): Promise; findSkills(query: Partial): Promise; countSkills(query?: Partial): Promise; createPrerequisite(input: PrerequisiteEdgeInput): Promise; getPrerequisite(id: EdgeId): Promise; deletePrerequisite(id: EdgeId): Promise; findPrerequisites(criteria: { sourceId?: SkillId; targetId?: SkillId; type?: string; minStrength?: number; }): Promise; getPrerequisitesOf(skillId: SkillId): Promise; getDependentsOf(skillId: SkillId): Promise; getSubgraph(rootId: SkillId, depth: number): Promise; getRootSkills(): Promise; getLeafSkills(): Promise; getPath(fromId: SkillId, toId: SkillId): Promise; importGraph(nodes: SkillNodeInput[], edges: PrerequisiteEdgeInput[], options?: { clearExisting?: boolean; }): Promise; exportGraph(): Promise; clearAll(): Promise; getStats(): Promise; } //# sourceMappingURL=neo4j.d.ts.map