import { ModifierArg, ModifierState } from '../base'; export interface Offset { x: number; y: number; index: number; relativePoint?: Interact.Point; } export interface SnapPosition { x?: number; y?: number; range?: number; offset?: Offset; [index: string]: any; } export declare type SnapFunction = (x: number, y: number, interaction: Interact.Interaction, offset: Offset, index: number) => SnapPosition; export declare type SnapTarget = SnapPosition | SnapFunction; export interface SnapOptions { targets: SnapTarget[]; range: number; relativePoints: Interact.Point[]; offset: Interact.Point | Interact.RectResolvable<[Interact.Interaction]> | 'startCoords'; offsetWithOrigin?: boolean; origin: Interact.RectResolvable<[Interact.Element]> | Interact.Point; endOnly?: boolean; enabled?: boolean; } export declare type SnapState = ModifierState; declare function start(arg: ModifierArg): void; declare function set(arg: ModifierArg): { target: any; inRange: boolean; distance: number; range: number; delta: { x: number; y: number; }; }; declare const snap: { start: typeof start; set: typeof set; defaults: SnapOptions; }; export default snap;