import type { FileNode, JSON_ROOT } from "./ParseContext";
export type IncrementalScriptFuncEntry = NonNullable<FileNode["scriptFunc"]>[number];
export type IncrementalRelativePath = string;
export type IncrementalFileChangeKind = "added" | "removed" | "updated";
export type IncrementalFileChange = {
    relativePath: IncrementalRelativePath;
    kind: IncrementalFileChangeKind;
    file?: FileNode;
};
export type IncrementalScriptFuncDelta = {
    relativePath: IncrementalRelativePath;
    added: IncrementalScriptFuncEntry[];
    removed: IncrementalScriptFuncEntry[];
    updated: IncrementalScriptFuncEntry[];
};
export type IncrementalDiffResult = Pick<JSON_ROOT, "toolName" | "toolVersion" | "targetLanguage" | "projectName" | "projectRoot" | "hash"> & {
    fileChanges: IncrementalFileChange[];
    scriptFuncDeltas?: IncrementalScriptFuncDelta[];
};
