/**
 * 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