/**
 * Code Context Tool
 *
 * Builds comprehensive understanding of code structure, relationships,
 * and semantics for a given file or codebase.
 *
 * Inspired by hurry-mode's code context capabilities.
 */
import { CodeContext } from "./types.js";
import { ASTParser } from "./ast-parser.js";
import { SymbolSearch } from "./symbol-search.js";
import { DependencyAnalyzer } from "./dependency-analyzer.js";
/**
 * Code Context Builder
 */
export declare class CodeContextBuilder {
    private parser;
    private symbolSearch;
    private dependencyAnalyzer;
    private vfs;
    constructor(parser?: ASTParser, symbolSearch?: SymbolSearch, dependencyAnalyzer?: DependencyAnalyzer);
    /**
     * Build context for a single file
     */
    buildFileContext(filePath: string): Promise<CodeContext>;
    /**
     * Enrich symbols with contextual information
     */
    private enrichSymbols;
    /**
     * Find related symbols within the same file
     */
    private findRelatedSymbols;
    /**
     * Estimate usage count for a symbol
     */
    private estimateUsageCount;
    /**
     * Calculate complexity for a symbol
     */
    private calculateSymbolComplexity;
    /**
     * Generate semantic tags for a symbol
     */
    private generateSemanticTags;
    /**
     * Build contextual dependencies
     */
    private buildDependencies;
    /**
     * Categorize a dependency
     */
    private categorizeDependency;
    /**
     * Calculate dependency importance
     */
    private calculateDependencyImportance;
    /**
     * Build relationships between symbols
     */
    private buildRelationships;
    /**
     * Build semantic context for a file
     */
    private buildSemanticContext;
    /**
     * Infer purpose of a file
     */
    private inferPurpose;
    /**
     * Extract domain from file path
     */
    private extractDomain;
    /**
     * Detect design patterns in code
     */
    private detectPatterns;
    /**
     * Calculate quality metrics
     */
    private calculateQualityMetrics;
    /**
     * Calculate cyclomatic complexity
     */
    private calculateCyclomaticComplexity;
    /**
     * Calculate cognitive complexity
     */
    private calculateCognitiveComplexity;
    /**
     * Format context for display
     */
    formatContext(context: CodeContext): string;
}
/**
 * Create a code context builder
 */
export declare function createCodeContextBuilder(): CodeContextBuilder;
export declare function getCodeContextBuilder(): CodeContextBuilder;
export declare function resetCodeContextBuilder(): void;
