import { Multiplicity } from './types'; /** end2 multiplicity가 컬렉션(0..* / 1..*)인가 — 코드젠의 @OneToMany vs @OneToOne 분기와 동일 기준. */ export declare function isCollectionMultiplicity(m: Multiplicity): boolean; /** * 최소 개수가 0인가(0..1 / 0..*) — 레거시 `Multiplicity.isOptional()` 이식. * * FK nullability의 파생원이다: 부모 end(end1)가 optional이 아니면(=`1`) 자식은 부모 없이 존재할 수 * 없으므로 FK는 NOT NULL이다. 레거시 코드젠이 `@ManyToOne(optional=…)`·`@JoinColumn(nullable=…)`을 * 정확히 이 값으로 방출했다(bluework-im `EntityJavaFile:900,932,1072,1120`). * * 자식 end(end2)의 `0..*` vs `1..*`는 이 축이 아니다 — "부모가 자식을 최소 1개 가진다"는 자식 테이블의 * 컬럼 제약으로 표현할 수 없다(레거시도 여기서 nullability를 뽑지 않는다). * * 판정을 "required 목록의 여집합"으로 쓴다(`!== '1' && !== '1..*'`) — union 밖 값(레거시는 다중성 * 미설정을 null로 허용)이 흘러들어도 optional=nullable로 안전하게 떨어진다. */ export declare function isOptionalMultiplicity(m: Multiplicity): boolean; /** * 다중성 표시 기호(0..1 / 1 / 0..* / 1..*) — 영속용 enum(`*_INSTANCE(S)`)의 단일 표시 SoT. * 기호는 언어 무관 UML 표기라 i18n 대상이 아니다. 캔버스 관계선 라벨·인스펙터 select·mermaid * 라벨이 모두 이 함수로 위임한다(과거 multSymbol/multHuman으로 중복 정의되던 것 통합). */ export declare function multiplicityLabel(m: Multiplicity): string; /** * inverse nav 기본 이름: 자식 엔티티명(camel). 컬렉션이면 복수형. * 예: Order→OrderItem 컬렉션 → `orderItems`, 단일 → `orderItem`. */ export declare function defaultInverseNavName(childEntityName: string, isCollection: boolean): string; /** 엔티티 내 속성명 유일화 — 충돌 시 숫자 suffix(addEmbedAssociation 필드명 패턴과 동형). */ export declare function uniqueAttributeName(base: string, existing: ReadonlySet): string;