import { Ref } from 'vue';
export interface SnapTarget {
    /** 目标类型 */
    type: 'tick' | 'guide-line' | 'custom';
    /** 目标位置（世界坐标） */
    position: number;
    /** 优先级 */
    priority: number;
}
export interface SnapResult {
    /** 吸附后的位置 */
    position: number;
    /** 吸附目标 */
    target: SnapTarget;
    /** 原始位置 */
    original: number;
}
export interface SnapOptions {
    /** 吸附阈值（像素） */
    threshold: Ref<number>;
    /** 当前缩放比例 */
    scale: Ref<number>;
    /** 刻度吸附目标 */
    tickTargets?: Ref<number[]>;
    /** 参考线吸附目标 */
    guideLineTargets?: Ref<number[]>;
    /** 自定义吸附目标 */
    customTargets?: Ref<number[]>;
    /** 吸附强度（0-1，0.5 为软吸附） */
    strength?: Ref<number>;
}
export declare function useSnapDetection(options: SnapOptions): {
    snap: (position: number, direction: "h" | "v") => SnapResult | null;
};
//# sourceMappingURL=useSnapDetection.d.ts.map