import { OBB, Rect2D } from './transform-geometry'; export type AnchorId = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle-left' | 'middle-right' | 'top-center' | 'bottom-center'; export type HitZone = { type: 'anchor'; anchor: AnchorId; } | { type: 'rotate'; } | { type: 'move'; } | { type: 'none'; }; export declare const TRANSFORM_OVERLAY_CONSTANTS: { readonly ANCHOR_SIZE: 8; readonly ANCHOR_HIT_SIZE: 14; readonly EDGE_HIT_WIDTH: 8; readonly ROTATE_HANDLE_RADIUS: 5; readonly ROTATE_HANDLE_HIT_RADIUS: 16; readonly ROTATE_HANDLE_OFFSET: 22; readonly BORDER_STROKE_WIDTH: 1.5; readonly MIN_SIZE_PX: 1; readonly ANGLE_LABEL_OFFSET_X: 12; readonly ANGLE_LABEL_OFFSET_Y: 12; }; export interface AnchorLayout { id: AnchorId; x: number; y: number; } export interface RotateHandleLayout { x: number; y: number; } export declare function resolveEnabledAnchors(element: { resizable: boolean; resizeAnchors?: string[] | null; }): string[] | null; export declare function resolveShowRotate(element: { resizable: boolean; locked?: boolean; }): boolean; export declare function layoutAnchors(obbViewport: OBB, enabledAnchors: string[] | null): AnchorLayout[]; export declare function layoutRotateHandle(obbViewport: OBB): RotateHandleLayout; export declare function hitTestTransformOverlay(pointer: { x: number; y: number; }, input: { mode: 'single' | 'multi'; bounds: OBB | Rect2D; enabledAnchors: string[] | null; showRotate: boolean; canMove: boolean; }): HitZone; /** * 从 event.target 向上遍历 Konva 节点: * - name/id 包含 'transform-overlay' → true * - 兼容:className === 'Transformer' → true(防御残留) */ export declare function isClickOnTransformOverlay(event: { target?: any; }): boolean; export declare function cursorForHitZone(zone: HitZone, rotationDeg: number): string;