import { Matrix4, Vector3 } from "three";
import { Board, ObjectIdArr } from "../DatabaseServices/Entity/Board";
import { Entity } from "../DatabaseServices/Entity/Entity";
import { ExtrudeContourCurve } from "../DatabaseServices/Entity/Extrude";
import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCompositeEntity";
import { ObjectId } from "../DatabaseServices/ObjectId";
export declare function ParseNewBr2OldBr_EdgeMap(newBr: Board, oldBr: Board, oldBrOcsInv: Matrix4): number[];
/**
 * 获取切割后的板，在原始轮廓坐标系上的新轮廓
 * @param {Board} oriBr 原始板
 * @param {Board[]} cutBrs 切割后的板
 * @return {*}  {Map<Board, ExtrudeContourCurve>}  key = 切割后板，value = 切割后板在原始板上的轮廓
 */
export declare function GetCutBrsConInOriBrConCoordSys(oriBr: Board, cutBrs: Board[]): Map<Board, ExtrudeContourCurve>;
/**
 * 在板轮廓上的，实体中心点
 * @param {Board} br 板
 * @param {ObjectId[][]} ens 实体ID集合
 * @return {*}  {Map<ObjectIdArr, Vector3>} Map<实体，实体的中心点在板轮廓上的位置>
 */
export declare function GetEnsCenPtInBrCon(br: Board, ens: ObjectId[][]): Map<ObjectIdArr, Vector3>;
/**
 * 把圆弧板上的实体， 转换到圆弧板对应的平板上
 * 思路：在SweepPath原始坐标系下，把SweepPath沿着x轴拉直，并把实体放到对应位置
 * @param {Board} br 圆弧板
 * @param {Entity[]} ens 实体
 * @return {*}
 */
export declare function MoveEntityToFlatBoard(br: Board, ens: Entity[]): Entity[];
/**
 * 分配关联五金给新板
 * @param {ObjectId<HardwareCompositeEntity>} hwdObjId 五金id
 * @param {Board} oldBr 旧版
 * @param {Board} newBr 新板
 */
export declare function AllocateRelHardwareToBr(hwdObjId: ObjectId<HardwareCompositeEntity>, oldBr: Board, newBr: Board): boolean;
/**
 * 分配实体对象给切割后的板材
 * @param {Board} oriBr 原始板
 * @param {Board[]} cutBrs 切割后的板
 * @param {ObjectId[][]} objIds 和板关联的实体对象id
 * @param {Map<Board, ExtrudeContourCurve>} curtBrsOriCon 切割后的板轮廓在原始板上的位置
 * @return {*}  {Map<Board, ObjectId[]>} Map<板，关联的实体对象id>
 */
export declare function AllocateEnsToCutBrs(oriBr: Board, cutBrs: Board[], objIds: ObjectId[][], curtBrsOriCon: Map<Board, ExtrudeContourCurve>): Map<Board, ObjectId[]>;
//# sourceMappingURL=BoardUtils.d.ts.map