import type { ContextDiffReport, ContextQueryResult } from "./ContextDiff";
import type { FileCallChainDiffRecord } from "./JsonDiff";
import type { DiffImpactReport, ImpactWeights } from "./ImpactEngine";
import type { IncrementalDiffResult } from "./incrementalSnapshotFragment";
import type { FileNode, JSON_ROOT } from "./ParseContext";
import type { JsonFieldsInfo } from "./jsonFieldsInfo";
import type { QueryRes } from "./queryFuncChains";
import type { ExecuteCoreAction } from "./ActionDispatch";
import type { CodeModelContextInitOptions } from "./initProgrammingBuiltinCache";
import type { QualityAssessmentConfig, QualityAssessmentReport, QualityBenchmarkCase } from "./QualityAssess";
export type { ContextDiffReport, ContextQueryResult, DiffImpactReport, FileCallChainDiffRecord, ImpactWeights, IncrementalDiffResult, JSON_ROOT, JsonFieldsInfo, QualityAssessmentConfig, QualityAssessmentReport, QualityBenchmarkCase, };
export type { JsonFieldsInfoNode, JsonFieldsInfoObject } from "./jsonFieldsInfo";
export type { IncrementalFileChange, IncrementalFileChangeKind, IncrementalRelativePath, IncrementalScriptFuncDelta, IncrementalScriptFuncEntry, } from "./incrementalSnapshotFragment";
export type { CodeModelContextInitOptions } from "./initProgrammingBuiltinCache";
export type CodeModelContextOptions = CodeModelContextInitOptions;
export type CodeModelContextInstanceApi = {
    readonly targetProgrammingKey: string;
    readonly targetLanguage: string;
    readonly projectRoot: string;
    readonly defaultImpactWeights: Readonly<Partial<ImpactWeights>> | undefined;
    readonly baselineSnapshot: JSON_ROOT | undefined;
    readonly currentSnapshot: JSON_ROOT | undefined;
    parseProject: () => Promise<void>;
    getJsonByFilePath: (filePath: string) => Promise<FileNode>;
    getIncrementalDiffResult: () => IncrementalDiffResult;
    updateOldSnapshot: (patch: IncrementalDiffResult) => JSON_ROOT;
    funcCallChainDiff: () => Promise<FileCallChainDiffRecord[]>;
    analyzeImpact: () => Promise<DiffImpactReport>;
    analyzeImpactWithWeights: (weights?: Partial<ImpactWeights>) => Promise<DiffImpactReport>;
    jsonFieldsChanged: () => Promise<ContextDiffReport>;
    evaluateQualityBaseline: (benchmarkCases: QualityBenchmarkCase[], previousReport?: QualityAssessmentReport, config?: QualityAssessmentConfig) => Promise<QualityAssessmentReport>;
    executeCoreAction: ExecuteCoreAction;
    queryFuncCallChainByFuncName: (records: FileCallChainDiffRecord[], functionName: string) => Promise<ContextQueryResult[]>;
    queryFuncChainsBySnapshot: (targetFuncName: string) => QueryRes;
    getJsonFieldsInfo: () => JsonFieldsInfo;
};
export type CodeModelContextClassApi = {
    new (options: CodeModelContextOptions): CodeModelContextInstanceApi;
};
export type CodeModelContextCoreModule = {
    CodeModelContext?: CodeModelContextClassApi;
};
export type ParseProject = CodeModelContextInstanceApi["parseProject"];
export type GetJsonByFilePath = CodeModelContextInstanceApi["getJsonByFilePath"];
export type GetIncrementalDiffResult = CodeModelContextInstanceApi["getIncrementalDiffResult"];
export type UpdateOldSnapshot = CodeModelContextInstanceApi["updateOldSnapshot"];
export type FuncCallChainDiff = CodeModelContextInstanceApi["funcCallChainDiff"];
export type AnalyzeImpact = CodeModelContextInstanceApi["analyzeImpact"];
export type AnalyzeImpactWithWeights = CodeModelContextInstanceApi["analyzeImpactWithWeights"];
export type JsonFieldsChanged = CodeModelContextInstanceApi["jsonFieldsChanged"];
export type EvaluateQualityBaseline = CodeModelContextInstanceApi["evaluateQualityBaseline"];
export type QueryFuncCallChainByFuncName = CodeModelContextInstanceApi["queryFuncCallChainByFuncName"];
export type QueryFuncChainsBySnapshot = CodeModelContextInstanceApi["queryFuncChainsBySnapshot"];
export type GetJsonFieldsInfo = CodeModelContextInstanceApi["getJsonFieldsInfo"];
