/**
 * Semantic Map Builder
 *
 * Builds and maintains a semantic understanding of a codebase
 * including structure, relationships, and concepts.
 */
import { EventEmitter } from "events";
import { SemanticMap, SemanticMapConfig, SemanticQuery, SemanticQueryResult, ImpactAnalysis, NavigationSuggestion, FileReader, FileLister } from "./types.js";
/**
 * Codebase Semantic Map Builder
 */
export declare class SemanticMapBuilder extends EventEmitter {
    private config;
    private fileReader?;
    private fileLister?;
    private map;
    constructor(config?: Partial<SemanticMapConfig>, fileReader?: FileReader, fileLister?: FileLister);
    /**
     * Build the semantic map for a codebase
     */
    build(rootPath: string): Promise<SemanticMap>;
    /**
     * Discover all relevant files
     */
    private discoverFiles;
    /**
     * Analyze a single file
     */
    private analyzeFile;
    /**
     * Build relationships between elements
     */
    private buildRelationships;
    /**
     * Build semantic clusters
     */
    private buildClusters;
    /**
     * Identify architectural layers
     */
    private identifyLayers;
    /**
     * Extract concepts from the codebase
     */
    private extractConcepts;
    /**
     * Query the semantic map
     */
    query(query: SemanticQuery): SemanticQueryResult;
    /**
     * Analyze impact of changing an element
     */
    analyzeImpact(elementId: string): ImpactAnalysis | null;
    /**
     * Get navigation suggestions from an element
     */
    getNavigationSuggestions(elementId: string, limit?: number): NavigationSuggestion[];
    /**
     * Get the current map
     */
    getMap(): SemanticMap | null;
    /**
     * Format map for display
     */
    formatMap(): string;
    private addRelationship;
    private detectLanguage;
    private getLocationFromOffset;
    private inferVisibility;
    private inferClusterCategory;
    private extractKeywords;
    private calculateCoherence;
    private mergeSimilarClusters;
    private calculateClusterSimilarity;
    private splitName;
    private initializeStats;
    private updateStats;
    private createId;
    /**
     * Dispose and clean up resources
     */
    dispose(): void;
}
/**
 * Create a semantic map builder
 */
export declare function createSemanticMapBuilder(config?: Partial<SemanticMapConfig>, fileReader?: FileReader, fileLister?: FileLister): SemanticMapBuilder;
export declare function getSemanticMapBuilder(): SemanticMapBuilder;
export declare function resetSemanticMapBuilder(): void;
