export interface AABBInput { x: number; y: number; width: number; height: number; rotation: number; scaleX: number; scaleY: number; } export interface AABB { left: number; right: number; top: number; bottom: number; centerX: number; centerY: number; } export interface GuideLine { axis: 'x' | 'y'; value: number; } export interface AABBLineValues { xValues: number[]; yValues: number[]; } export interface SnapMatch { snapTo: number; source: number; delta: number; } export interface SnapResult { x: SnapMatch | null; y: SnapMatch | null; } export declare function getElementAABB(input: AABBInput): AABB; export declare function getAABBLineValues(aabb: AABB): AABBLineValues; export declare function unionAABB(aabbs: AABB[]): AABB | null; export declare function computeSnap(dragged: AABBLineValues, targets: AABBLineValues[], threshold: number): SnapResult; export type StickyAxis = SnapMatch | null; export interface StickyState { x: StickyAxis; y: StickyAxis; } export declare function snapResultToOffset(result: SnapResult): { offsetX: number; offsetY: number; }; export declare function applyStickySnap(intent: AABBLineValues, rawSnap: SnapResult, sticky: StickyState, threshold: number): { result: SnapResult; nextSticky: StickyState; };