import { ComputedRef, InjectionKey, Ref } from 'vue'; /** * 마우스 오버한 대상(엔티티 또는 그룹)과 그에 연관된 엔티티/관계를 강조하기 위한 주입 계약. * DiagramCanvas가 hover 소스 + 파생 집합을 계산해 제공하고, EntityNode/GroupNode/AssociationEdge가 구독한다. * (그룹 편입 드래그 강조 GROUP_HOVER와 별개 — 이쪽은 관계 위상(topology) 기반 정적 강조) */ export type HighlightSource = { kind: 'entity'; id: string; } | { kind: 'group'; id: string; } | { kind: 'note'; id: string; }; export interface RelationHighlight { source: Ref; /** hover가 활성인지 (dim 판단 기준) */ active: ComputedRef; /** 강하게 강조할 엔티티(포커스 원점) — 엔티티 hover: 그 엔티티 / 그룹 hover: 그룹 멤버들 (노트 hover면 비어 있음) */ primaryEntityIds: ComputedRef>; /** primary + 관계로 직접 연결된 엔티티 (이 집합 밖이면 dim). 노트 hover면 그 노트가 연결한 엔티티들 */ relatedEntityIds: ComputedRef>; /** 강조할 관계(엣지) id 집합 */ relatedEdgeIds: ComputedRef>; /** * 강조할 노트 id 집합 (이 집합 밖 노트는 dim). * 엔티티/그룹 hover면 related 엔티티에 연결된 노트들, 노트 hover면 그 노트 자신. */ relatedNoteIds: ComputedRef>; /** 그룹 hover일 때 해당 그룹 id (그룹 박스 강조/그 외 그룹 dim 판단용, 엔티티 hover면 null) */ hoverGroupId: ComputedRef; setEntityHover(entityId: string | null): void; setGroupHover(groupId: string | null): void; setNoteHover(noteId: string | null): void; } export declare const RELATION_HIGHLIGHT: InjectionKey;