/** Geometry is in document coordinates; tolerance is measured in screen pixels. */ export interface PageSnapRect { id: string; x: number; y: number; width: number; height: number; } export interface PageSnapGuide { axis: 'x' | 'y'; position: number; start: number; end: number; } export interface PageSnapSpacing { axis: 'x' | 'y'; from: number; to: number; cross: number; distance: number; } export interface PageSnapOptions { moving: readonly PageSnapRect[]; stationary: readonly PageSnapRect[]; dx: number; dy: number; scale: number; thresholdPx?: number; gridSize?: number; customGuides?: readonly PageSnapGuide[]; /** Constrain movement to this axis. */ axis?: 'x' | 'y'; } export interface PageSnapResult { dx: number; dy: number; guides: PageSnapGuide[]; spacing: PageSnapSpacing[]; } /** Applies a single translation to a selection, retaining its internal layout. */ export declare function snapPageDrag(options: PageSnapOptions): PageSnapResult;