import { Board } from "../DatabaseServices/Entity/Board";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { ExtrudeContourCurve } from "../DatabaseServices/Entity/Extrude";
import { SplitOrderType } from "../Production/Product";
import { IHighEdgeRemarkItem, IHighReservedEdgeItem, IHighSealedItem } from "../UI/Store/OptionInterface/IHighSealedItem";
type CurveGroups = (Curve[])[];
/**
 * 将曲线分段(根据高级封边的特性 (因为圆弧无法单独使用封边,所以和圆弧在一起的曲线必须和圆弧一样的封边,否则偏移失败))
 * @l-arc-l,l-arc-arc-l,l-arc-l-arc-l....
 * @param in_out_curves 曲线组( 函数结束后 这个数组被改变 )
 * @returns 返回编组 curveGroups
 */
export declare function SubsectionCurvesOfHightSeal(in_out_curves: Curve[]): CurveGroups;
export declare function GetBoardHighSeal(br: Board, sealcus: Curve[]): IHighSealedItem[];
export declare function GetBoardHighReservedEdge(br: Board, sealcus: Curve[]): IHighReservedEdgeItem[];
/**
 * 获取板边备注
 * @param br 板
 * @param sealcus 封边轮廓线
 * @param addAll 添加所有板边备注
 * @returns 板边备注
 */
export declare function GetHighBoardEdgeRemark(br: Board, sealcus: Curve[], addAll?: boolean): IHighEdgeRemarkItem[];
/**偏移前后曲线起点没改变 */
export declare function OffsetOutlineSpNotChange(oldcu: Curve, newCu: Curve): boolean;
/**
 * 获取板件的轮廓曲线数组(合并共线了 已经对封边进行合并了 尊重原始时针)
 * GetBrContourCurvesBySealGrouped
 * @param offsetInside 向内偏移1(为了编辑封边)
 * */
export declare function GetBoardSealingCurves(br: Board, offsetInside?: boolean): Curve[];
export interface BrSealedData {
    brContour: ExtrudeContourCurve;
    sealedContour: ExtrudeContourCurve;
    brCurves: Curve[];
    highSeals: IHighSealedItem[];
    highReservedEdges: IHighReservedEdgeItem[];
    hasSealedErr?: boolean;
}
/**
 * 获取板件的轮廓(没有扣封边)(拆单时表现)
 * 在拆单的时候 我们用这个轮廓(为了数据对应准确性)
 * 修改时 请注意函数 GetSealedBoardContour
*/
export declare function GetBoardContour(br: Board): ExtrudeContourCurve | undefined;
/**
 * 获取板件(扣封边后的)轮廓(拆单时)
 * 修改时 请注意函数 GetBoardContour
 * @param {Board} br 板件
 * @param {SplitOrderType} [splitType=SplitOrderType.ChaiDan] 拆单类型
 * @param {boolean} [showErr=true] 是否显示错误
 * @return {*}  {(BrSealedData | undefined)}
 */
export declare function GetSealedBoardContour(br: Board, splitType?: SplitOrderType, showErr?: boolean): BrSealedData | undefined;
/**
 * 将11对应的封边数值改成WebCAD的高级封边
 * @param seals 每段曲线的封边
 * @param curves 曲线表
 * @returns 转换成高级封边后的封边值 (圆弧会编组)
 */
export declare function ConverEachSeal2HightSealData(seals: IHighSealedItem[], curves: Curve[]): IHighSealedItem[];
/**
 * 设置板的上下左右封边(解析来自高级封边)
 * @param br
 * @param sealDatas 封边数据
 * @param [sealCurves] 封边的曲线
 * @param [brContourCurve] 传递封边的曲线轮廓
 */
export declare function SetBoardTopDownLeftRightSealData(br: Board, sealDatas: IHighSealedItem[], sealCurves?: Curve[], brContourCurve?: ExtrudeContourCurve): void;
export declare function SetBoardReservedEdgeData(br: Board, sealDatas: IHighReservedEdgeItem[], sealCurves?: Curve[], brContourCurve?: ExtrudeContourCurve): void;
export declare function SetBoardEdgeRemarkData(br: Board, remarkDatas: IHighEdgeRemarkItem[], sealCurves?: Curve[], brContourCurve?: ExtrudeContourCurve): void;
export {};
//# sourceMappingURL=CalcEdgeSealing.d.ts.map