@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
68 lines • 3.22 kB
TypeScript
/**
* Neo4j Database Service
*
* Comprehensive Neo4j database integration service providing connection management,
* schema operations, TTL file ingestion, query optimization, and health monitoring.
*/
import { Driver, Session, Transaction } from 'neo4j-driver';
import { EventEmitter } from 'events';
import { Neo4jConfig, Neo4jConnectionManager, TTLIngestionPipeline, RDFTriple, IngestionResult, BatchIngestionResult, ValidationResult, NodeCreationResult, RelationshipCreationResult, CypherQueryOptimizer, OptimizedQuery, QueryPerformance, IndexSuggestion, QueryValidation, QueryExplanation, DatabaseHealth, HealthStatus, DatabaseMetrics } from './types';
/**
* Main Neo4j Database Service
* Orchestrates all Neo4j operations including connection management,
* schema operations, TTL ingestion, and query optimization.
*/
export declare class Neo4jDatabaseService extends EventEmitter implements Neo4jConnectionManager, TTLIngestionPipeline, CypherQueryOptimizer, DatabaseHealth {
private driver;
private config;
private cacheStats;
private eventListeners;
constructor();
connect(config: Neo4jConfig): Promise<Driver>;
disconnect(): Promise<void>;
getDriver(): Driver | null;
isConnected(): boolean;
testConnection(): Promise<boolean>;
getSession(database?: string): Session;
executeTransaction<T>(work: (tx: Transaction) => Promise<T>, database?: string): Promise<T>;
ingestTTLFile(filePath: string): Promise<IngestionResult>;
ingestTTLContent(content: string, sourceFile: string): Promise<IngestionResult>;
batchIngestTTLFiles(filePaths: string[]): Promise<BatchIngestionResult>;
validateTTLBeforeIngestion(content: string): Promise<ValidationResult>;
createNodesFromTriples(triples: RDFTriple[]): Promise<NodeCreationResult>;
createRelationshipsFromTriples(triples: RDFTriple[]): Promise<RelationshipCreationResult>;
optimizeQuery(query: string): Promise<OptimizedQuery>;
analyzeQueryPerformance(query: string): Promise<QueryPerformance>;
suggestIndexes(query: string): Promise<IndexSuggestion[]>;
validateQuery(query: string): Promise<QueryValidation>;
explainQuery(query: string): Promise<QueryExplanation>;
checkHealth(): Promise<HealthStatus>;
getMetrics(): Promise<DatabaseMetrics>;
getConstraints(): Promise<any[]>;
getIndexes(): Promise<any[]>;
getStorageInfo(): Promise<any>;
private extractStorageSize;
private setupEventHandlers;
private emitEvent;
private emitError;
private parseTTLContent;
private determineObjectType;
private extractNodeId;
private extractNodeLabel;
private extractRelationshipType;
private suggestIndexHints;
private parameterizeQuery;
private convertProfileToQueryProfile;
private identifyBottlenecks;
private extractQueryPatterns;
private validateQuerySyntax;
private validateQuerySemantics;
private convertPlanToExecutionPlan;
private extractIndexUsage;
private generateQueryRecommendations;
private checkConnectionHealth;
private checkDatabaseHealth;
private checkSchemaHealth;
private checkPerformanceHealth;
}
//# sourceMappingURL=Neo4jDatabaseService.d.ts.map