import { Box3, Line as TLine, Matrix3, Matrix4, Object3D, Shape, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Curve } from './Curve';
export declare class Line extends Curve {
    private _StartPoint;
    private _EndPoint;
    constructor(_StartPoint?: Vector3, _EndPoint?: Vector3);
    get Is2D(): boolean;
    get Shape(): Shape;
    Z0(): this;
    protected ApplyScaleMatrix(m: Matrix4): this;
    protected ApplyMirrorMatrix(m: Matrix4): this;
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(type: RenderType, lineObj: TLine): void;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
    GetGripPoints(): Array<THREE.Vector3>;
    MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
    GetStretchPoints(): Array<THREE.Vector3>;
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
    GetFistDeriv(param: number | Vector3): Vector3;
    IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
    GetPointAtParam(param: number): Vector3;
    GetParamAtPoint(pt: Vector3): number;
    GetParamAtDist(d: number): number;
    GetPointAtDistance(distance: number): Vector3;
    GetDistAtParam(param: number): number;
    GetDistAtPoint(pt: Vector3): number;
    GetSplitCurves(param: number[] | number): Curve[];
    GetParamAtPoint2(pt: Vector3): number;
    PtOnCurve3(p: Vector3, fuzz?: number): boolean;
    GetClosestAtPoint(pt: Vector3, extend: boolean): {
        closestPt: Vector3;
        param: number;
    };
    GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
    Extend(newParam: number): void;
    Join(cu: Curve, allowGap?: boolean, tolerance?: number): Status;
    Reverse(): this;
    GetOffsetCurves(offsetDist: number): Array<Curve>;
    get BoundingBox(): Box3;
    get StartParam(): number;
    get EndParam(): number;
    get Length(): number;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
    set StartPoint(p: Vector3);
    get StartPoint(): Vector3;
    get EndPoint(): Vector3;
    set EndPoint(p: Vector3);
}
//# sourceMappingURL=Line.d.ts.map