import { Box3, BufferGeometry, Frustum, Matrix3, Matrix4, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { SweepGeometry } from '../../Geometry/SweepGeometry';
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from '../CADFiler';
import { Curve } from "../Entity/Curve";
import { Entity } from "../Entity/Entity";
import { Polyline } from '../Entity/Polyline';
import { OBB } from './../../Geometry/OBB/obb';
export declare class SweepSolid extends Entity {
    private _DisplayAccuracy;
    static UseRectFakerContour: boolean;
    protected _Contour: Polyline;
    protected _PathCurve: Curve | Curve[];
    constructor(contour?: Polyline, pathCurve?: Curve | Curve[]);
    Explode(): (Curve | Polyline)[];
    get DisplayAccuracy(): number;
    set DisplayAccuracy(v: number);
    get Contour(): Polyline;
    get Path(): Curve | Curve[];
    get Paths(): Curve[];
    Reverse(): void;
    /**
     * 将轮廓变换到wcs空间,当用户选定某个与扫描线起点相切的轮廓时.
     */
    private TransfromPathToWCS;
    private _MeshGeometry;
    private _LineGeom;
    get MeshGeometry(): BufferGeometry | SweepGeometry;
    private _EdgeGeometry;
    get EdgeGeometry(): BufferGeometry;
    InitDrawObject(renderType: RenderType): Object3D;
    UpdateDrawGeometry(): void;
    ClearDraw(): this;
    UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
    /**
     * 当实体需要被更新时,更新实体材质
     */
    UpdateDrawObjectMaterial(type: RenderType, obj: Object3D): void;
    get BoundingBox(): Box3;
    get OBB(): OBB;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3, frustum?: Frustum): Vector3[];
    private _GripSubIndexMap;
    /** 获取夹点与子实体的索引 */
    GetGripSubIndexMap(): Map<number, Entity>;
    GetGripPoints(): Vector3[];
    GetStretchPoints(): Vector3[];
    private GetEndPoint;
    private GetMidPoints;
    MoveGripPoints(indexList: number[], vec: Vector3): void;
    MoveStretchPoints(indexList: number[], vec: Vector3): void;
    ApplyMatrix(m: Matrix4): this;
    protected ApplyMirrorMatrix(m: Matrix4): this;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=SweepSolid.d.ts.map