/**
 * Neo4j Storage Layer
 *
 * Implements the Neo4j storage interface for the Hybrid Storage Manager
 * with optimized graph operations and health monitoring.
 */
import { EventEmitter } from 'events';
import { StorageInterface, StorageLayer, StorageLayerHealth, QueryContext, QueryResult, Neo4jStorageConfig } from './types';
export declare class Neo4jStorageLayer extends EventEmitter implements StorageInterface {
    private config;
    readonly layer = StorageLayer.NEO4J;
    private driver;
    private isInitialized;
    private healthMetrics;
    constructor(config: Neo4jStorageConfig);
    /**
     * Initialize the Neo4j storage layer
     */
    initialize(): Promise<void>;
    /**
     * Execute a query against Neo4j
     */
    query<T = any>(query: string, params?: Record<string, any>, context?: QueryContext): Promise<QueryResult<T>>;
    /**
     * Create a new entity in Neo4j
     */
    create(data: any, context?: QueryContext): Promise<QueryResult<any>>;
    /**
     * Update an entity in Neo4j
     */
    update(id: string, data: any, context?: QueryContext): Promise<QueryResult<any>>;
    /**
     * Delete an entity from Neo4j
     */
    delete(id: string, context?: QueryContext): Promise<QueryResult<boolean>>;
    /**
     * Perform health check
     */
    healthCheck(): Promise<StorageLayerHealth>;
    /**
     * Get storage metrics
     */
    getMetrics(): Promise<Record<string, any>>;
    /**
     * Shutdown the Neo4j storage layer
     */
    shutdown(): Promise<void>;
    private verifyConnectivity;
    private determineAccessMode;
    private convertNeo4jValue;
    private convertNeo4jProperties;
    private buildCreateQuery;
    private buildUpdateQuery;
    private updateMetrics;
}
export default Neo4jStorageLayer;
//# sourceMappingURL=Neo4jStorageLayer.d.ts.map