import { SymbolKind, GraphEdge } from '../types.js';

declare class MapxGraph {
    private graph;
    private repo;
    constructor(repo: string);
    addFileNode(filePath: string, language: string, sizeBytes: number, lines: number): void;
    addSymbolNode(symbolId: string, filePath: string, name: string, kind: SymbolKind, startLine: number, endLine: number, scope: string | null): void;
    addDependencyEdge(edge: GraphEdge): void;
    computePageRank(): Map<string, number>;
    getRankedFiles(): Array<{
        path: string;
        pagerank: number;
        language: string;
    }>;
    getRankedSymbols(): Array<{
        name: string;
        kind: SymbolKind;
        filePath: string;
        startLine: number;
        pagerank: number;
        scope: string | null;
    }>;
    getDependencies(filePath: string): Array<{
        target: string;
        type: string;
    }>;
    getReverseDependencies(filePath: string): Array<{
        source: string;
        type: string;
    }>;
    getFileCount(): number;
    getSymbolCount(): number;
    getEdgeCount(): number;
    dropFrameworkEdgesForRepo(repoName: string): void;
    toJSON(): object;
    static fromJSON(data: object, repo: string): MapxGraph;
    private fileNodeId;
    private symbolNodeId;
}

export { MapxGraph };
