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[];
    };
}
