import { ElementByType, ElementType, ElementUtil, WhiteboardElement } from '../types'; export declare function getElementUtil(type: ElementType): ElementUtil; export declare function setActiveLayerProvider(provider: () => string): void; export declare function createElement(type: T, props: Partial>, layerId?: string): ElementByType; export interface LineEndpointInput { x: number; y: number; x1: number; y1: number; x2: number; y2: number; rotation: number; scaleX?: number; scaleY?: number; } /** * Compute world-space endpoints for an arrow or line element. * * The element `` uses the SVG transform `translate(x,y) rotate(rotation)` together * with CSS `transform-box: fill-box; transform-origin: center`. In modern browsers this * makes the rotation pivot the fill-box center (midpoint of the local geometry) rather * than the local origin (0,0). We replicate that here: * * world = translate(x,y) * rotate_around_fill_center(rotation) * scale(scaleX,scaleY) * * Fill-box center in local space: cx = (x1+x2)/2, cy = (y1+y2)/2. */ export declare function getLineWorldEndpoints(el: LineEndpointInput): { sx: number; sy: number; ex: number; ey: number; };