import { ConnectionPoint, Point, SnapResult, WhiteboardElement } from '../types'; import * as i0 from "@angular/core"; /** * Computes connection points on shapes and provides snap-to-shape logic * for arrow endpoints during drawing and reconnecting. */ export declare class ConnectionPointsService { /** * Get all named connection points for a given element. * * Connection points are returned in **world coordinates** (accounting for * the element's position offset). */ getConnectionPoints(element: WhiteboardElement): ConnectionPoint[]; /** * Find the closest connection point on any connectable element near the given position. * * @param position - current pointer world coordinates * @param elements - all elements to consider * @param excludeIds - element IDs to exclude (e.g. the arrow itself) * @param snapRadius - maximum snapping distance in canvas px */ findSnapTarget(position: Point, elements: WhiteboardElement[], excludeIds: Set, snapRadius?: number): SnapResult | null; /** * Compute the point on a shape's edge where a bound arrow should connect, * given a binding and the current state of the target element. */ resolveBindingPoint(element: WhiteboardElement, pointId: string | null, fallbackDirection: Point, gap: number): Point; private getRectangleConnectionPoints; private getEllipseConnectionPoints; private getImageConnectionPoints; private getTextConnectionPoints; /** Fallback: bounding-box-based connection points */ private getBoundsConnectionPoints; /** * Get the closest point on an element's edge to a given world coordinate. */ private getClosestEdgePoint; private closestRectEdgePoint; private closestEllipseEdgePoint; private closestBoundsEdgePoint; getElementCenter(element: WhiteboardElement): Point; isConnectable(element: WhiteboardElement): boolean; private isNearBounds; private distance; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }