import { Ref } from 'vue'; import { GuideLine } from '@sketch-ruler/core'; export interface SnapTarget { type: 'tick' | 'guide-line' | 'custom' | 'grid' | 'equidistant'; position: number; priority: number; } export interface SnapResult { position: number; target: SnapTarget; original: number; } export interface SnapRule { id: string; priority: number; getTargets: (context: SnapContext) => SnapTarget[]; } export interface SnapContext { direction: 'h' | 'v'; position: number; scale: number; lines: GuideLine[]; viewportSize: { width: number; height: number; }; } export interface SnapOptions { threshold: Ref; scale: Ref; tickTargets?: Ref; guideLineTargets?: Ref; customTargets?: Ref; strength?: Ref; gridSize?: Ref; enableEquidistant?: Ref; customRules?: Ref; lines?: Ref; viewportSize?: Ref<{ width: number; height: number; }>; } export declare function useRulerSnap(options: SnapOptions): { snap: (position: number, direction: "h" | "v") => SnapResult | null; }; /** 向后兼容导出 */ export { useRulerSnap as useSnapDetection }; //# sourceMappingURL=useRulerSnap.d.ts.map