import { Vector3 } from 'three';
import { ObjectSnapMode } from './ObjectSnapMode';
import { GetPointPrompt } from "./PromptOptions";
/**
 * 轴线捕捉模式
 */
export declare enum AxisSnapMode {
    Polar = 1,
    Ortho = 2
}
export declare class SnapServices {
    Disabled: boolean;
    FilterErase: boolean;
    SnapSize: number;
    AxisSnapMode: AxisSnapMode;
    SnapPoint: Vector3;
    AxisSnapBasePoint: Vector3;
    SnapModeEnable: ObjectSnapMode;
    private m_SnapMode;
    private m_DynPrompt;
    private m_HasBasePoint;
    private m_IsZAxis;
    private m_SupportSnapPoints;
    private m_UCS;
    /** 切线捕捉时使用的基点 */
    TanBasePoint: Vector3;
    Start(prompt: GetPointPrompt): void;
    Stop(): void;
    get SnapMode(): ObjectSnapMode;
    set SnapMode(mode: ObjectSnapMode);
    private UpdateCursort;
    /**
     * 返回合适的捕捉点,如果有的话.
     * @returns 捕捉点或空
     */
    GetSnapPoint(): Vector3 | undefined;
    private m_DelaySupportSnapId;
    /**
     * 获得实体捕捉点.
     *
     * 前期:
     * 如果鼠标还在旧的捕捉点时,则返回旧的捕捉点.
     * 清理辅助捕捉点定时器.
     *
     * 1.先计算了(端点,中点,圆心,垂点,切点).=>(进行辅助捕捉点添加)
     * 2.计算了交点.
     * 3.计算了最近点.
     * @returns
     */
    private GetEntitySnapPoint;
    private CalcClosestSnapPoint;
    private GetSupportEntity;
    /**
     * 轴线捕捉
     * 1.尝试轴线捕捉.
     * 2.尝试延伸轴捕捉.
     * 3.返回较近捕捉轴.{捕捉类型,捕捉轴,捕捉点}
     *
     * @param supportSnapPt 辅助的捕捉点.
     * @param [isFirst]
     * @returns SnapAxis
     */
    private AxisSnap;
    private GetAxisSnapPoint;
    /**
     * 十字光标组
     */
    private m_CrossCursor;
    /**
     * 初始化捕捉光标(十字)
     */
    private InitCrossCursor;
    /**
     * 更新所有的十字光标
     */
    private UpdateCrossCursor;
    private m_SquareCursor;
    private InitSquareCursor;
    private UpdateSquareCursor;
    private UpdateSquareCursorMode;
    private m_ObliqueCrossCursor;
    private InitObliqueCrossCursor;
    private UpdateObliqueCrossCursor;
    private m_ObliqueOutline;
    private InitObliqueOutline;
    private UpdateObliqueOutline;
    private UpdateObjectPosition;
    private m_SupportExtLine;
    m_SupportExtLinePts: Vector3[];
    private InitSupportExtLine;
    private UpdateSupportExtLine;
    private DrawExtend;
    InitDynPrompt(): void;
    UpdateDynPrompt(): void;
}
//# sourceMappingURL=SnapServices.d.ts.map