import { ComputedRef, Ref } from 'vue'; import { Command, EditorState } from '../command/types'; import { ClipboardContent, EditorController, Selection } from './controller'; import { ModelId } from '../core/types'; /** 이 축이 팩토리 클로저에서 쓰는 것 전부 — 늘어나면 여기 선언이 먼저 늘어난다(의존 표면 = 이 타입). */ export interface ClipboardImportContext { /** 편집 대상 reactive 상태(속성 교체만 일어나므로 참조 안정). */ state: EditorState; clipboard: Ref; /** paste·importEntities가 붙여넣은 대상으로 선택을 옮긴다(쓰기). */ selection: Ref; inspectedEntityId: ComputedRef; /** 조회 모드 판정 — run()의 백스톱과 별개로 selection 부수효과를 막기 위해 진입에서 직접 본다. */ editable: Ref; /** 모델 변경의 단일 실행점(조회 모드 no-op + 안내). */ run: (c: Command) => void; } /** * 클립보드·임포트 인텐트 3종을 조립한다. 컨트롤러는 반환된 메서드를 `EditorController`에 **명시 위임**한다 * (스프레드가 아니라 한 줄씩) — 스프레드는 이 모듈에 export가 늘면 컨트롤러 런타임 표면이 **무심사로** * 증식하는 배럴과 같은 실패 모드다(TI-4 `export *` 금지와 같은 논거: 최소 저항 경로가 곧 올바른 행동). */ export declare function createClipboardImportApi(ctx: ClipboardImportContext): Pick;