import { DiagramLayout, LogicalModel } from './types'; import { MergeDiagramSource } from './mergeDiagram'; export declare const DIAGRAM_JSON_FORMAT = "entity-modeler-diagram"; export declare const DIAGRAM_JSON_VERSION = 1; export interface DiagramJsonEnvelope { format: typeof DIAGRAM_JSON_FORMAT; version: number; logical: LogicalModel; layout: DiagramLayout; } /** 파싱 실패(잘못된 JSON·봉투·골격) — 호출부가 사용자에게 사유를 표시할 수 있도록 message에 이유를 담는다. */ export declare class InvalidDiagramJsonError extends Error { constructor(reason: string); } /** 현재 다이어그램(논리 + 레이아웃)을 이식 가능한 JSON 백업 문자열로 직렬화(pretty). */ export declare function diagramToJson(logical: LogicalModel, layout: DiagramLayout): string; /** * JSON 백업 문자열 → 임포트 소스(논리 + 레이아웃). 봉투·모델 골격을 검증하고, 실패 시 * `InvalidDiagramJsonError`를 던진다. 레이아웃 서브배열이 없으면 빈 배열로 관용 보정한다 * (논리 전용 JSON도 수용 — importEntities 폴백 geo가 배치). 참조 무결성(dangling)은 mergeDiagram이 * 관용 처리하므로 여기서 강제하지 않는다. */ export declare function parseDiagramJson(text: string): MergeDiagramSource;