import { BufferGeometry, Geometry, Matrix3, Mesh, Object3D, Vector3 } from "three";
import { Line2 } from "three/examples/jsm/lines/Line2";
import { ObjectSnapMode } from "../../../../Editor/ObjectSnapMode";
import { RenderType } from "../../../../GraphicsSystem/RenderType";
import { CADFiler } from "../../../CADFiler";
import { Arc } from "../../../Entity/Arc";
import { Line } from "../../../Entity/Line";
import { ObjectId } from "../../../ObjectId";
import { PhysicalMaterialRecord } from "../../../PhysicalMaterialRecord";
import { RoomWallBase } from "./RoomWallBase";
export declare class RoomWallArc extends RoomWallBase {
    private _Radius;
    private _StartAngle;
    private _EndAngle;
    /**
     * 曲线为顺时针
     */
    private _Clockwise;
    constructor(_Center?: Vector3, _Radius?: number, _StartAngle?: number, _EndAngle?: number, 
    /**
     * 曲线为顺时针
     */
    _Clockwise?: boolean, _Thickness?: number, _Height?: number);
    private _LeftCurveSign;
    private _RightCurveSign;
    private _LidCurveSign;
    get CenterAxisCurve(): Arc | Line;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
    GetGripPoints(): Array<Vector3>;
    MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
    GetStretchPoints(): Vector3[];
    MoveStretchPoints(indexList: number[], vec: Vector3): void;
    UpdateDrawGeometry(): void;
    ClearDraw(): this;
    private _EdgeGeometry;
    private _MeshGeometry;
    get EdgeGeometry(): BufferGeometry;
    get MeshGeometry(): Geometry;
    OverWriteMaterial: Map<number, ObjectId<PhysicalMaterialRecord>>;
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
    GetPrintObject3D(): (Line2 | Mesh<Geometry, import("three").ShaderMaterial>)[];
    InitDrawObject(renderType?: RenderType): Object3D;
    /**
     * 重载:更新绘制的实体
     * @param {RenderType} renderType
     * @param {Object3D} obj
     */
    UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//@ts-ignore
export interface RoomWallArc extends RoomWallBase, Arc {
}
//# sourceMappingURL=RoomWallArc.d.ts.map