import { CatmullRomCurve3, Matrix3, Vector3 } from 'three';
import { ObjectSnapMode } from '../Editor/ObjectSnapMode';
import { CADFiler } from './CADFiler';
import { Curve } from './Entity/Curve';
import { Polyline } from './Entity/Polyline';
export declare class Spline extends Curve {
    private _PointList;
    private _ClosedMark;
    constructor(_PointList?: Vector3[]);
    get Shape(): CatmullRomCurve3;
    get Length(): number;
    get Points(): Vector3[];
    set Points(pts: Vector3[]);
    get CloseMark(): boolean;
    get IsClose(): boolean;
    set CloseMark(v: boolean);
    get StartPoint(): Vector3;
    get EndPoint(): Vector3;
    get StartParam(): number;
    get EndParam(): number;
    GetPointAtParam(param: number): Vector3;
    GetFirstDeriv(param: number | Vector3): Vector3;
    GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
    GetOffsetCurves(offsetDist: number): Array<Spline>;
    GetGripPoints(): Vector3[];
    GetStretchPoints(): Vector3[];
    MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    GetDrawCount(): number;
    Convert2Polyline(): Polyline;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Spline.d.ts.map