import { Point, Rectangle } from 'pixi.js'; export interface SnapGuide { type: 'vertical' | 'horizontal'; position: number; start: number; end: number; } export interface SnapResult { x: number | null; y: number | null; guides: SnapGuide[]; } export declare class SnappingManager { private artboardWidth; private artboardHeight; private scale; static SNAP_THRESHOLD: number; constructor(artboardWidth: number, artboardHeight: number, scale?: number); updateContext(width: number, height: number, scale: number): void; /** * Snap a rectangle (bounds of the object) to artboard edges and center. * returns delta (adjustment) needed for x and y */ snapMove(current: Rectangle): { dx: number; dy: number; guides: SnapGuide[]; }; /** * Snap during scaling * For now, simplistic implementation: snap the edges being moved. */ snapResize(proposed: Rectangle): { corrected: Rectangle; guides: SnapGuide[]; }; snapPoint(point: Point): { p: Point; guides: SnapGuide[]; }; }