import { DiagramLayout, LogicalModel } from './types'; import { OpShape } from '../command/op'; /** 합성기 입력 — 정합한 완전 상태(logical + layout). 호스트는 v2 doc 서브트리를 그대로 넘긴다(rev/version은 무시). */ export interface DiagramSnapshotState { logical: LogicalModel; layout: DiagramLayout; } /** * null≡undefined≡absent 정규화 deep-equal. 스칼라/배열(인덱스별)/객체(키 합집합)를 재귀 비교한다. * (mongo가 optional 필드 clear를 null로 저장하는 것과 target의 absent를 동치로 본다.) */ export declare function deepEqual(a: unknown, b: unknown): boolean; /** * current → target 복원 diff를 forward op으로 합성한다(순수, 감사 전용 — 실행 안 됨). * * 산출 순서(결정성): logical(entities → associations → groups; 각 remove → add → update/child) → * layout(entityLayouts → associationLayouts → groupLayouts → notes). 각 컬렉션은 key 정렬. * * @returns OpShape[] — CAS 메타(rev 숫자·layout.version) 없는 어휘 형태(호스트 이력 레코드 `ops`에 그대로 기록). */ export declare function synthesizeRestoreOps(current: DiagramSnapshotState, target: DiagramSnapshotState): OpShape[];