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 { ObjectId } from "../ObjectId";
import { TextAligen } from "../Text/Text";
import { Dimension } from "./Dimension";
interface DefaultValue {
    offset: Vector2;
    isFlipped: boolean;
}
/**
 * 对齐标注
 *   存在子类重载(线性标注 LinearDimension)
 * @class AlignedDimension
 */
export declare class AlignedDimension extends Dimension {
    protected _FootP1: Vector3;
    protected _FootP2: Vector3;
    protected _ArmP1: Vector3;
    protected _ArmP2: Vector3;
    protected _TextRotation: number;
    protected _LeadOutVisible: boolean;
    private _LeadOutLine;
    private _LeadOutOffsetY;
    private _LeadOutOffsetX;
    private _DefaultVal;
    private _LeadOutPts;
    private _LeadOutIsFlipped;
    private isDragLeadOutPt;
    constructor(_FootP1?: Vector3, _FootP2?: Vector3, _ArmP1?: Vector3, _ArmP2?: Vector3, _TextRotation?: number, _LeadOutVisible?: boolean);
    set Material(materialId: ObjectId);
    set FootP1(v: Vector3);
    get FootP1(): Vector3;
    set FootP2(v: Vector3);
    get FootP2(): Vector3;
    set ArmP1(v: Vector3);
    get ArmP1(): Vector3;
    set ArmP2(v: Vector3);
    get ArmP2(): Vector3;
    get TextPosition(): Vector3;
    set TextPosition(p: Vector3);
    get DalUcs(): Matrix4;
    RaiseFooters(num: number): void;
    set TextRotation(angle: number);
    set TextAligen(al: TextAligen);
    get Text(): import("../Text/Text").Text;
    protected GetString(): string;
    get BoundingBox(): import("../../Geometry/Box").Box3Ext;
    set LeadOutVisible(visible: boolean);
    set LeadOutFlipped(isFlipped: boolean);
    get LeadOutFlipped(): boolean;
    toggleLeadOutVisible(): void;
    toggleLeadOutFlipped(): void;
    set LeadOutOffsetY(size: number);
    get LeadOutOffsetY(): number;
    set LeadOutOffsetX(size: number);
    get LeadOutOffsetX(): number;
    set DefaultValue(val: DefaultValue);
    get DefaultValue(): DefaultValue;
    Explode(): (Line | import("../Text/Text").Text)[];
    protected ApplyMirrorMatrix(m: Matrix4): this;
    Clone(): this;
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
    /**
     * 更新引线并返回textPosition
     * @returns textPosition(Vector3)
     * @memberof AlignedDimension
     */
    UpdateLeadOutLine(renderType: RenderType): Vector3;
    UpdateText(pos?: Vector3): 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 ChangeFootPt(): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
export {};
//# sourceMappingURL=AlignedDimension.d.ts.map