/**
 * Neo4j Context Provider for MCP Server
 *
 * Provides source code context from Neo4j database to complement TTL metadata,
 * creating a comprehensive triple context system for LLM interactions.
 */
import { Neo4jDatabaseService } from '../layer2/neo4j-database/Neo4jDatabaseService';
import { ContextRequest, Neo4jContextResult, SourceCodeContext, Neo4jContextProviderConfig } from './types';
/**
 * Neo4j Context Provider
 *
 * Queries Neo4j database for source code content and relationships
 * to provide rich context alongside TTL metadata files.
 */
export declare class Neo4jContextProvider {
    private neo4jService;
    private config;
    constructor(neo4jService: Neo4jDatabaseService, config: Neo4jContextProviderConfig);
    /**
     * Get source code context from Neo4j for a specific request
     */
    getSourceCodeContext(request: ContextRequest): Promise<Neo4jContextResult>;
    /**
     * Search for related source code based on query
     */
    searchSourceCode(query: string, language?: string): Promise<SourceCodeContext[]>;
    /**
     * Get code relationships and dependencies
     */
    getCodeRelationships(filePath: string): Promise<{
        dependencies: SourceCodeContext[];
        dependents: SourceCodeContext[];
        related: SourceCodeContext[];
    }>;
    /**
     * Build context queries based on request
     */
    private buildContextQueries;
    /**
     * Build search queries for source code search
     */
    private buildSearchQueries;
    /**
     * Execute Neo4j query with error handling
     */
    private executeNeo4jQuery;
    /**
     * Execute a context query
     */
    private executeContextQuery;
    /**
     * Process query results into context sources
     */
    private processQueryResults;
    /**
     * Extract source code contexts from query results
     */
    private extractSourceCodeContexts;
    /**
     * Extract source code context from a Neo4j record
     */
    private extractSourceCodeFromRecord;
    /**
     * Format source code for LLM consumption
     */
    private formatSourceCodeForLLM;
    /**
     * Calculate relevance score for a record
     */
    private calculateRelevanceScore;
    /**
     * Detect language from file path
     */
    private detectLanguageFromPath;
    /**
     * Extract file name from path
     */
    private extractFileName;
    /**
     * Extract directory from path
     */
    private extractDirectory;
}
//# sourceMappingURL=Neo4jContextProvider.d.ts.map