import { Attribute, DbColumn, ModelId } from './types'; /** 한 엔티티의 인덱스 columnRef 해소기. 두 표기(속성 modelId / dbAttr modelId)를 모두 받는다. */ export type IndexRefResolver = { /** 이 ref 가 속한 속성(표시용). 다중 컬럼 속성 ref 도 여기선 해소된다. */ attributeOf(ref: ModelId): Attribute | undefined; /** * 이 ref 가 **특정하는 물리 컬럼**. undefined 면 컬럼이 특정되지 않은 것이다(다중 컬럼 속성 ref / * 상속 · dangling). ⚠️`attributeOf` 가 있는데 이것이 없다 = *대상은 있으나 어느 컬럼인지 미지정*. */ columnOf(ref: ModelId): DbColumn | undefined; /** * 비교용 정규 키 — **컬럼이 특정되면** 그 dbAttr modelId, 아니면 원문 그대로. * 원문이 그대로 나오는 경우는 셋이다: 이미 dbAttr 표기 / 다중 컬럼 속성 ref(모호) / 상속·dangling. */ canon(ref: ModelId): ModelId; }; /** * 엔티티 속성 목록으로 해소기를 만든다. 인덱스는 **엔티티 로컬**이므로 그 엔티티 속성만 넘긴다 * (전역 맵을 쓰면 실 데이터의 modelId 중복[N-2 레거시 유입]에서 남의 엔티티 컬럼으로 해소된다 — * `ddl.ts`의 `ownCols`가 같은 이유로 테이블 로컬이다). */ export declare function indexRefResolver(attributes: readonly Attribute[]): IndexRefResolver; /** * 미해소 ref 의 진단 라벨 — 산출물(DDL 생략 주석·코드젠 fillIn)이 **고칠 자리를 지목**하도록 한다. * ref 원문(UUID)만 내면 사용자가 어느 컬럼인지 찾을 수 없다. */ export declare function describeIndexRef(r: IndexRefResolver, ref: ModelId): string;