import { Vec2, Vector2 } from "three";
import { Arc } from "./Entity/Arc";
import { Line } from "./Entity/Line";
import { Polyline } from "./Entity/Polyline";
import { Spline } from "./Spline";
export declare function SplineConver2Polyline(spl: Spline, tolerance?: number): Polyline;
/**
 * 将碎点简化为多段线,(尝试转换为简单圆弧,或者使用双圆弧插值)
 * @param pts 点表
 * @param [tolerance=0.1] 容差
 * @param [parseArc=true] 解析成简单圆弧
 * @param [lineLengthSq=2000]
 * @returns 多段线
 */
export declare function PointsSimplify2PolylineAndParseArc(pts: Vector2[], buls?: number[], tolerance?: number, parseArc?: boolean, lineLengthSq?: number): Polyline;
export declare function SmartPointsSimply2Polyline(pts: Vector2[], buls?: number[], tolerance?: number, lineLengthSq?: number): Polyline;
/**
 * 简化多段线,返回结果比较好的多段线
 * @param pl
 * @param [tolerance=0.1]
 * @param [lineLengthSq=2000]
 * @returns 返回undefined时,简化失败
 */
export declare function SmartPolylineSimply2Polyline(pl: Polyline, tolerance?: number, lineLengthSq?: number): Polyline | undefined;
declare function Vec2(x: number, y: number): void;
/**
 * 计算双圆弧插值的圆弧
 * @param p1 起点
 * @param p2 终点
 * @param t1 起点切线
 * @param t2 终点切线
 * @returns 两个圆弧(或者其中一个是直线)
 */
export declare function ComputeBiarc(p1: Vec2, p2: Vec2, t1: Vec2, t2: Vec2): [Arc | Line, Arc | Line];
export {};
//# sourceMappingURL=SplineConver2Polyline.d.ts.map