/**
 * Repository Map - Aider-inspired code context system
 *
 * Based on research from:
 * - Aider's repository map with PageRank-style ranking
 * - CodeRAG paper for dependency-aware retrieval
 * - JetBrains context compression research
 *
 * This module provides intelligent code context by:
 * 1. Building a symbol graph of the codebase
 * 2. Ranking symbols by reference frequency (PageRank-inspired)
 * 3. Dynamically fitting context to token budget
 * 4. Prioritizing relevant code based on current task
 */
type SymbolKind = 'class' | 'function' | 'method' | 'interface' | 'type' | 'variable' | 'import' | 'export';
interface Symbol {
    name: string;
    kind: SymbolKind;
    filePath: string;
    line: number;
    endLine?: number;
    signature?: string;
    references: string[];
    definitions: string[];
}
interface RepoMapConfig {
    rootDir: string;
    maxTokens: number;
    includePatterns: string[];
    excludePatterns: string[];
    maxFileSize: number;
    cacheEnabled: boolean;
}
/**
 * Repository Map class - builds and maintains a ranked symbol index
 */
export declare class RepositoryMap {
    private config;
    private files;
    private symbols;
    private referenceGraph;
    private initialized;
    private cache;
    constructor(config: Partial<RepoMapConfig>);
    /**
     * Initialize the repository map by scanning the codebase
     */
    initialize(): Promise<void>;
    /**
     * Get repository map context for a given query/task
     */
    getContext(query: string, relevantFiles?: string[], maxTokens?: number): string;
    /**
     * Get a compact map showing file structure and key symbols
     */
    getCompactMap(maxTokens?: number): string;
    /**
     * Get symbols related to a specific file
     */
    getRelatedSymbols(filePath: string): Symbol[];
    /**
     * Update the map when a file changes
     */
    updateFile(filePath: string): Promise<void>;
    private scanDirectory;
    private isExcluded;
    private isIncluded;
    private globToRegex;
    private processFile;
    private extractTypeScriptSymbols;
    private extractPythonSymbols;
    private extractSignature;
    private buildSymbolGraph;
    private calculateRanks;
    private scoreFiles;
    private buildContext;
    private formatFileContext;
    private formatFileCompact;
    private estimateTokens;
    /**
     * Dispose resources and cleanup
     */
    dispose(): void;
}
export declare function getRepositoryMap(rootDir?: string): RepositoryMap;
export declare function resetRepositoryMap(): void;
export {};
