import type { Interaction, InteractionProxy } from '@interactjs/core/Interaction'; import type { ActionName, Point, RectResolvable, Element } from '@interactjs/core/types'; import type { ModifierArg, ModifierState } from '../types'; export interface Offset { x: number; y: number; index: number; relativePoint?: Point | null; } export interface SnapPosition { x?: number; y?: number; range?: number; offset?: Offset; [index: string]: any; } export type SnapFunction = (x: number, y: number, interaction: InteractionProxy, offset: Offset, index: number) => SnapPosition; export type SnapTarget = SnapPosition | SnapFunction; export interface SnapOptions { targets?: SnapTarget[]; range?: number; relativePoints?: Point[]; offset?: Point | RectResolvable<[Interaction]> | 'startCoords'; offsetWithOrigin?: boolean; origin?: RectResolvable<[Element]> | Point; endOnly?: boolean; enabled?: boolean; } export 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; }; declare const _default: { (_options?: Partial): import("../types").Modifier; _defaults: SnapOptions; _methods: { start: (arg: ModifierArg) => void; set: (arg: ModifierArg) => { target: any; inRange: boolean; distance: number; range: number; delta: { x: number; y: number; }; }; beforeEnd: (arg: ModifierArg) => void | Point; stop: (arg: ModifierArg) => void; }; }; export default _default; export { snap };