import { ExamComponentOrChooserSpecification, ExamSpecification, QuestionSpecification, SectionSpecification } from "./core/exam_specification"; import { ExamComponentSkin } from "./core/skins"; export declare namespace ExamDiff { type ShallowSpecProperty = T extends readonly (infer E)[] ? ShallowSpecProperty[] : T extends ExamComponentSkin ? { skin_id: string; } : T extends QuestionSpecification ? { question_id: string; } : T extends SectionSpecification ? { section_id: string; } : T extends ExamSpecification ? { exam_id: string; } : ShallowSpecification; type ShallowSpecification = { [P in keyof T]: ShallowSpecProperty; }; export function shallowCopy(spec: ExamComponentOrChooserSpecification): ShallowSpecification; export function exam_shallow_diff(spec1: ExamSpecification, spec2: ExamSpecification): { op: import("just-diff").Operation; path: Array; value: any; }[]; type ExamComponentDiff = Partial>; export function shallowDiff(spec1: T, spec2: T): ExamComponentDiff | undefined; export {}; }