import { EditorHost } from '../core'; import { IGraphicElement } from '../types'; export interface OverlayAnchorView { id: string; x: number; y: number; size: number; } export interface OverlayViewModel { visible: boolean; mode: 'single' | 'multi'; border: { x: number; y: number; width: number; height: number; rotation: number; stroke: string; strokeWidth: number; } | null; anchors: OverlayAnchorView[]; rotateHandle: { x: number; y: number; radius: number; } | null; rotateStem: { points: number[]; stroke: string; strokeWidth: number; } | null; } export declare function useTransformOverlay(host: EditorHost): { overlay: import('vue').ComputedRef; refreshOverlay: () => void; selectedElements: import('vue').Ref<{ id: string; type: string; x: number; y: number; width: number; height: number; rotation: number; scaleX: number; scaleY: number; visible: boolean; locked: boolean; draggable: boolean; resizable: boolean; zIndex: number; displayName?: string | null | undefined; resizeAnchors?: string[] | null | undefined; getBoundingBox: () => import('../types').BoundingBox; clone: () => IGraphicElement; serialize: () => any; deserialize: (data: any) => void; updateProperty: (host: EditorHost, property: string, oldValue: any, newValue: any) => void; getTransformAttr?: ((event: any) => { oldAttrs: any; newAttrs: any; }) | undefined; }[], IGraphicElement[] | { id: string; type: string; x: number; y: number; width: number; height: number; rotation: number; scaleX: number; scaleY: number; visible: boolean; locked: boolean; draggable: boolean; resizable: boolean; zIndex: number; displayName?: string | null | undefined; resizeAnchors?: string[] | null | undefined; getBoundingBox: () => import('../types').BoundingBox; clone: () => IGraphicElement; serialize: () => any; deserialize: (data: any) => void; updateProperty: (host: EditorHost, property: string, oldValue: any, newValue: any) => void; getTransformAttr?: ((event: any) => { oldAttrs: any; newAttrs: any; }) | undefined; }[]>; getElementNode: (id: string) => any; cursor: import('vue').Ref; onOverlayPointerDown: (e: any) => void; onOverlayPointerMove: () => void; onOverlayPointerUp: () => void; onStagePointerMove: (e: any) => void; angleLabel: import('vue').Ref<{ x: number; y: number; text: string; } | null, { x: number; y: number; text: string; } | { x: number; y: number; text: string; } | null>; };