export interface FileInfo {
    path: string;
    relativePath: string;
    size: number;
    lines: number;
    language: string;
    lastModified: Date;
    imports: string[];
    exports: string[];
}
export interface SymbolInfo {
    name: string;
    type: "function" | "class" | "interface" | "type" | "variable" | "constant" | "enum";
    file: string;
    line: number;
    exported: boolean;
    signature?: string;
}
export interface DependencyEdge {
    from: string;
    to: string;
    type: "import" | "require" | "dynamic";
}
export interface CodebaseMap {
    rootDir: string;
    files: Map<string, FileInfo>;
    symbols: Map<string, SymbolInfo[]>;
    dependencies: DependencyEdge[];
    summary: CodebaseSummary;
    buildTime: Date;
}
export interface CodebaseSummary {
    totalFiles: number;
    totalLines: number;
    languages: Record<string, number>;
    topLevelDirs: string[];
    entryPoints: string[];
    testFiles: number;
    configFiles: string[];
}
export declare class CodebaseMapper {
    private rootDir;
    private map;
    private maxFileSize;
    private maxFiles;
    constructor(rootDir?: string);
    buildMap(options?: {
        deep?: boolean;
    }): Promise<CodebaseMap>;
    private getAllFiles;
    private processFile;
    private extractImports;
    private extractExports;
    private extractSymbols;
    private extractDependencies;
    private buildSummary;
    getMap(): CodebaseMap | null;
    getRelevantContext(query: string, _maxTokens?: number): Promise<string>;
    formatSummary(): string;
}
export declare function getCodebaseMapper(rootDir?: string): CodebaseMapper;
