import { Material, Matrix3, Matrix4, Object3D, Vector2, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { Line } from "../Entity/Line";
import { Dimension } from "./Dimension";
/**
 * 对齐标注
 *   存在子类重载(线性标注 LinearDimension)
 */
export declare class AlignedDimension extends Dimension {
    protected _FootP1: Vector3;
    protected _FootP2: Vector3;
    protected _ArmP1: Vector3;
    protected _ArmP2: Vector3;
    protected _TextRotation: number;
    protected _UseLead: boolean;
    protected _RoomName: string;
    protected _CabinetName: string;
    private _LeadLine;
    /**引线的起始位置,在引线坐标系+使用中点 */
    private _LeadPos;
    /**构造函数提供的点在对象坐标系内部 */
    constructor(_FootP1?: Vector3, _FootP2?: Vector3, _ArmP1?: Vector3, _ArmP2?: Vector3, _TextRotation?: number, _UseLead?: boolean, _RoomName?: string, _CabinetName?: string);
    get Distance(): number;
    get FootP1(): Vector3;
    set FootP1(v: Vector3);
    get FootP2(): Vector3;
    set FootP2(v: Vector3);
    get ArmP1(): Vector3;
    set ArmP1(v: Vector3);
    get ArmP2(): Vector3;
    set ArmP2(v: Vector3);
    get TextPosition(): Vector3;
    /**实际上这个是BasePoint 用来定位尺寸线的位置 */
    set TextPosition(p: Vector3);
    get DalUcs(): Matrix4;
    set TextRotation(angle: number);
    get Text(): import("../Text/Text").Text;
    protected GetPrimitiveString(): string;
    get BoundingBox(): import("../../Geometry/Box").Box3Ext;
    get LeadVisible(): boolean;
    /**设置引线可见 */
    set LeadVisible(visible: boolean);
    set LeadInLeft(isLeft: boolean);
    /**切换引线可见性 */
    ToggleLeadVisible(): void;
    /**切换引线翻转 */
    FlippeLead(): void;
    get LeadY(): number;
    /**引线偏移 */
    set LeadY(y: number);
    get LeadX(): number;
    set LeadX(x: number);
    /**设置引线数据 */
    SetLeadData(offset: Vector2, isFlipped?: boolean): void;
    Explode(): (import("../Text/Text").Text | Line)[];
    protected ApplyMirrorMatrix(m: Matrix4): this;
    Clone(): this;
    InitDrawObject(renderType?: RenderType): Object3D;
    ParseTopDir(): [Vector3, Vector3, Vector3];
    UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
    get NeedLead(): boolean;
    /**
     * 更新引线并返回textPosition
     */
    UpdateLeadLine(): Vector3;
    UpdateText(textPos?: Vector3): void;
    protected OnChangeFootPt(i: number): void;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    private SetDataToTempPolyline;
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D, material?: Material): void;
    GetGripPoints(): Array<Vector3>;
    MoveGripPoints(indexList: number[], vec: Vector3): void;
    GetStretchPoints(): Array<Vector3>;
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=AlignedDimension.d.ts.map