import { IGraphicElement } from '../types'; import { AABB } from './geometry'; export interface ViewportTransform { contentX: number; contentY: number; zoom: number; } export interface Rect2D { x: number; y: number; width: number; height: number; } export interface OBB { centerX: number; centerY: number; width: number; height: number; rotation: number; corners: Array<{ x: number; y: number; }>; } export declare function normalizeDeg(deg: number): number; export declare function formatRotationLabel(deg: number): string; export declare function contentToViewport(x: number, y: number, vp: ViewportTransform): { x: number; y: number; }; export declare function viewportToContent(x: number, y: number, vp: ViewportTransform): { x: number; y: number; }; export declare function getElementOBB(input: { x: number; y: number; width: number; height: number; rotation: number; scaleX?: number; scaleY?: number; }): OBB; export declare function getElementOBBFromSource(element: IGraphicElement, _node: { x: () => number; y: () => number; rotation: () => number; scaleX: () => number; scaleY: () => number; } | null | undefined): OBB; export declare function obbToViewport(obb: OBB, vp: ViewportTransform): OBB; export declare function getSelectionUnionRect(items: Array<{ x: number; y: number; width: number; height: number; rotation: number; scaleX?: number; scaleY?: number; }>): Rect2D | null; export declare function aabbToRect(aabb: AABB): Rect2D; export declare function rectToViewport(rect: Rect2D, vp: ViewportTransform): Rect2D;