import { Box3, Vector3 } from "three";
import { Contour } from "../../Contour";
import { Arc } from "../../Entity/Arc";
import { Curve } from "../../Entity/Curve";
import { Line } from "../../Entity/Line";
export declare class CurveTrim {
    _curve: Line | Arc;
    _TrimParams: [number, number][];
    _IsErase: boolean;
    _Box: Box3;
    constructor(_curve: Line | Arc);
    TrimBy(contour: Contour, box: Box3, saveSyntropy?: boolean): void;
    PointInContour(p: Vector3, contour: Contour, contourBox: Box3, saveSyntropy?: boolean): boolean;
    TrimParam(sparam: number, eparam: number): void;
    GetPointAtParam(param: number): Vector3;
    get Curves(): Curve[];
}
export declare class CurveTrimLine extends CurveTrim {
    private derv;
    private _Sp;
    private _Fd;
    constructor(curve: Line, derv: Vector3, _Sp?: Vector3, _Fd?: Vector3);
    GetPointAtParam(param: number): Vector3;
    PointInContour(p: Vector3, contour: Contour, contourBox: Box3, saveSyntropy?: boolean): boolean;
    get Curves(): Line[];
}
export declare class CurveTrimArc extends CurveTrim {
    _curve: Arc;
    private _IsLeft;
    constructor(_curve: Arc, _IsLeft?: boolean);
    PointInContour(p: Vector3, contour: Contour, contourBox: Box3, saveSyntropy?: boolean): boolean;
    get Curves(): Arc[];
}
export declare function CreateCurveTrim(cu: Line | Arc): CurveTrimLine | CurveTrimArc;
//# sourceMappingURL=CurveTrim.d.ts.map