import type { FileNode, JSON_ROOT } from "./ParseContext";
import type { FileCallChainDiffRecord, FunctionCallChainSlot } from "./JsonDiff";
type ImpactLevel = "high" | "medium" | "low";
type FunctionImpactChangeType = "added" | "deleted" | "updated" | "unchanged";
type FunctionImpactInfoItem = {
    changedFunctionName: string;
    changedFunctionLineNo: number;
    changedFunctionEndLineNo: number;
    changedFunctionContent: string;
    changedType: FunctionImpactChangeType;
    invokes: string;
    impactFileNum: number;
    impactFileFunc: string[];
    impactFunctionNum: number;
    impactLevel: ImpactLevel;
    impactScore: string;
    removedChainsNum: number;
    crossFileChainsNum: number;
    changedAnchorFunctionSlotsNum: number;
};
type FileImpactInfoGroup = {
    fileName: string;
    filePath: string;
    fileType: string;
    impactInfo: FunctionImpactInfoItem[];
};
type DiffImpactReport = {
    projectRoot: string;
    toolVersion: string;
    targetLanguage: string;
    allInfoList: FileImpactInfoGroup[];
};
type ImpactWeights = {
    removedChain: number;
    crossFileChain: number;
    callerChangedBonus: number;
    calleeChangedChain: number;
    addedChain: number;
    callSiteMoved: number;
    maxCrossFileChains: number;
};
export type { JSON_ROOT, FileNode, FileCallChainDiffRecord, FunctionCallChainSlot, ImpactLevel, FunctionImpactChangeType, FunctionImpactInfoItem, FileImpactInfoGroup, DiffImpactReport, ImpactWeights, };
