import { Vec2 } from "three";
import { GangDrillType } from "../../DatabaseServices/3DSolid/CylinderHole";
import { Board } from "../../DatabaseServices/Entity/Board";
import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude";
import { IContourData } from "../../Production/Convert2PtsBul";
import { I2DModeling, I3DContourData, I3DModeling, IDrillingOption, IHardwareType, IModelingData, ISpliteOrderData } from '../../Production/Product';
import { FaceDirection, ISealingData, LinesType } from "../../UI/Store/BoardInterface";
import { ICountType } from "../LookOverBoardInfos/LookOverBoardInfosTool";
import { OrderDataBlock, WaveType } from "./Models/CadBlock";
import { CadBlockHoles, CadBlockInfo, CadBlockModel, CadBlockModelPoint, CadBlockPoint, FaceType, HoleType, ModelOffSetData } from "./Models/CadBlockInfo";
import { CADDbBoard } from "./Models/CadModel";
import { OrderDataObject, ProcessGroupObject } from "./Models/CadObject";
declare enum FrontOrSide {
    正面反面 = 0,
    侧面 = 1
}
export declare class ErpParseData {
    GetCadData(boardList: Board[], metalsList: IHardwareType[]): Promise<{
        blockList: OrderDataBlock[];
        objectList: OrderDataObject[];
        processGroupObjectList: ProcessGroupObject[];
    }>;
    DecomposeObject(metalsList: IHardwareType[]): OrderDataObject[];
    GetNumberBit(value: number, bit: number): number;
    GetWave(wave: LinesType): WaveType;
    GetPointDetail(points: IContourData, seals: ISealingData[]): CadBlockPoint[];
    GetModelDetail(DataArray: IModelingData[], frontOrSide: FrontOrSide, isRect?: Boolean, add?: number): CadBlockModel[];
    GetModelPointDetail(feeding: IContourData, lineID: number, deep: number): CadBlockModelPoint[];
    GetOffSetModelDetail(modeling: I2DModeling[], modelID: number): CadBlockModel[];
    GetModelOffSetData(md: I2DModeling): ModelOffSetData[];
    Get3DModelDetail(modeling: I3DModeling[], modelID: number): CadBlockModel[];
    Get3DModelPointDetail(paths: I3DContourData, lineID: number): CadBlockModelPoint[];
    GetHolesDetail(holes: IDrillingOption[], frontOrSide: FrontOrSide, isRect?: Boolean, add?: number): CadBlockHoles[];
    GetHoleType(hole: GangDrillType): HoleType;
    GetHoleFaceType(frontOrSide: FrontOrSide, hole: IDrillingOption): FaceType | number;
    GetModelFaceType(frontOrSide: FrontOrSide, dir: FaceDirection | number): FaceType | number;
    GetBlockPointInfo(board: ISpliteOrderData): CadBlockInfo;
    /**
     * 板件的模型信息,用于CADViewer显示板件
     */
    GetModelData(br: ExtrudeSolid): CADDbBoard;
    GetFaceAdd(point: Vec2): number;
    GetRemark(remarks: [string, string][], filter: (block: [string, string]) => boolean): [string, string][];
    GetDrillObjects(drills: ICountType[], RoomName: string, BoxName: string, specFun: (name: string) => {
        spec: string;
        count: number;
    }[]): OrderDataObject[];
    GetOrderTopLines(hardWares: IHardwareType[]): OrderDataObject[];
    GetSealingAndDrills(boardList: Board[]): OrderDataObject[];
    GetSealObjects(seals: ICountType[], roomName: string, boxName: string, sealMap: Map<string, object>): OrderDataObject[];
    groupBy(data: any[], fileds: string[]): any[];
}
export {};
//# sourceMappingURL=ParseData.d.ts.map