import { Ref } from 'vue'; import { Command, EditorState } from '../command/types'; import { EditorController, Selection } from './controller'; import { ModelId } from '../core/types'; /** 이 축이 팩토리 클로저에서 쓰는 것 전부. 늘어나면 여기 선언이 먼저 늘어난다(= 의존 인벤토리). */ export interface SelectionContext { state: EditorState; selection: Ref; /** 캔버스 센터링 요청 신호(requestFocus가 nonce를 올려 발화). */ focusRequest: Ref<{ id: ModelId; nonce: number; } | null>; /** 모델 변경의 단일 실행점(조회 모드 no-op + 안내). */ run: (c: Command) => void; /** 잠금 게이트 — 차단 시 true + 안내 emit. */ gateEntityLocked: (id: ModelId) => boolean; /** 순수 잠금 조회(다중 이동에서 잠긴 대상만 건너뛴다 — 안내는 내지 않는다). */ isEntityLockedFn: (id: ModelId) => boolean; isGroupLockedFn: (id: ModelId) => boolean; } export declare function createSelectionApi(ctx: SelectionContext): Pick;