import { Matrix4 } from "three";
import { ObjectSnapMode } from "../../../Editor/ObjectSnapMode";
import { CADFiler } from "../../CADFiler";
import { Entity } from "../../Entity/Entity";
import { ObjectId } from "../../ObjectId";
import { Positioning } from "./Positioning";
export interface SnapPointInfo {
    SnapEntity: ObjectId<Entity>;
    SnapMode: ObjectSnapMode;
    SnapIndex: number;
}
export interface DepthInfo {
    sp1: SnapPointInfo;
    sp2: SnapPointInfo;
}
/**
 * 2点空间定位持久化
 *
 * 前提:
 * 必须2点都被捕捉.(以后可能优化)
 *
 */
export declare class Positioning2Point extends Positioning {
    p1Info: SnapPointInfo;
    p2Info: SnapPointInfo;
    depthInfo: DepthInfo;
    RelativelyUCS: Matrix4;
    isFirst: boolean;
    constructor();
    private _SetPInfo;
    SetP1Info(pInfo: Partial<SnapPointInfo>): boolean;
    SetP2Info(pInfo: Partial<SnapPointInfo>): boolean;
    SetDepthInfoSP1(pInfo: Partial<SnapPointInfo>): boolean;
    SetDepthInfoSP2(pInfo: Partial<SnapPointInfo>): boolean;
    Positioning(): Promise<void>;
    ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
/**
 * 3点空间定位持久化
 *
 * 前提:
 * 必须3点都被捕捉.(以后可能优化)
 *
 */
export declare class Positioning3Point extends Positioning {
    p1Info: SnapPointInfo;
    p2Info: SnapPointInfo;
    p3Info: SnapPointInfo;
    depthInfo: DepthInfo;
    RelativelyUCS: Matrix4;
    isFirst: boolean;
    constructor();
    private _SetPInfo;
    SetP1Info(pInfo: Partial<SnapPointInfo>): boolean;
    SetP2Info(pInfo: Partial<SnapPointInfo>): boolean;
    SetP3Info(pInfo: Partial<SnapPointInfo>): boolean;
    SetDepthInfoSP1(pInfo: Partial<SnapPointInfo>): boolean;
    SetDepthInfoSP2(pInfo: Partial<SnapPointInfo>): boolean;
    Positioning(): Promise<void>;
    ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Positioning2Point.d.ts.map