import { InjectionKey } from 'vue'; export interface EmbedSlotCollapseApi { /** 이 키가 지금 접혀 있는가. 기본값은 축마다 다르다(헤더 표 참조). */ isCollapsed: (key: string) => boolean; /** 접힘 토글 — 조회 모드에서도 허용된다(읽기 편의이지 편집이 아니다). */ toggle: (key: string) => void; } /** * 미주입이면 노드는 **전부 펼친 원형 표시**로 degrade 한다(`COLUMN_RESOLUTION` 폴백과 같은 방향) — * 캔버스 없이 노드를 독립 렌더·테스트할 수 있게 유지한다. */ export declare const EMBED_SLOT_COLLAPSE: InjectionKey; /** * 반복 슬롯 축의 키. 속성 modelId 단독이 아니라 엔티티를 접두로 붙인다 — 레거시 유래 데이터에 * **속성 modelId 중복**이 실재하기 때문이다(CC-V 실측: 같은 중복 id 가 v1·v2 양쪽에 존재). */ export declare const embedSlotKey: (entityId: string, attrId: string) => string; /** 엔티티 일괄 축 키의 접두 — 기본값 분기(`defaultCollapsed`)가 이것으로 축을 가른다. */ export declare const ENTITY_FOLD_PREFIX = "all:"; /** 속성 통째 축 키의 접두. */ export declare const ATTR_FOLD_PREFIX = "one:"; /** 복합 FK 축 접두 — 다중 컬럼 FK 의 서브컬럼(기본 **접힘**). */ export declare const FK_FOLD_PREFIX = "fk:"; /** * 엔티티 일괄 축의 키. `modelId`는 UUID 라 `:` 를 담지 않으므로 접두 있는 키는 반복 축 키와 * 절대 겹치지 않는다(반복 축 키의 접두는 항상 엔티티 UUID 다). */ export declare const embedAllKey: (entityId: string) => string; /** * 속성 통째 축의 키. 반복 축과 **같은 (엔티티, 속성) 쌍을 가리키되 다른 축**이라 접두로만 갈린다 — * 둘은 동시에 상태를 가질 수 있고(통째를 풀면 반복 접힘이 그대로 살아난다) 그것이 의도다. */ export declare const embedAttrKey: (entityId: string, attrId: string) => string; /** * 복합 FK 축의 키 — 다중 컬럼 FK 속성의 서브컬럼을 접는다. 임베드 두 축과 **같은 슬롯**에 살고 * 접두로만 갈린다(모듈 헤더의 표). 기본값이 **접힘**인 근거는 그 헤더 ★★ 참조. */ export declare const fkSlotKey: (entityId: string, attrId: string) => string; /** * 이 키의 기본 접힘 여부 — 캔버스가 `useTreeCollapse`에 그대로 넘긴다. **키의 순수 함수**여야 하며 * (그 헤더 ①·②), 축별 기본값 근거는 이 모듈 헤더의 표에 있다. * **접힘 = 반복 축(접두 없음) + 복합 FK 축(`fk:`)** — 둘 다 정보 손실이 0인 축이다. */ export declare const embedDefaultCollapsed: (key: string) => boolean;