import { GangDrillType } from "../../DatabaseServices/3DSolid/CylinderHole";
import { Board } from "../../DatabaseServices/Entity/Board";
import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude";
import { IContourData, IDrillingOption, IModelingData, ISpliteOrderData, IHardwareType, ISealingData, I2DModeling, I3DModeling, I3DContourData, IOriginModelingData } from '../../Production/Product';
import { FaceDirection, LinesType } from "../../UI/Store/BoardInterface";
import { OrderDataBlock, WaveType } from "./Models/CadBlock";
import { BasePosition, CadBlockHoles, CadBlockInfo, CadBlockModel, CadBlockModelPoint, CadBlockPoint, FaceType, HoleType, ModelOffSetData } from "./Models/CadBlockInfo";
import { CadBlockBasePosition, CadBlockDrillings, CADDbBoard } from "./Models/CadModel";
import { OrderDataObject, ProcessGroupObject } from "./Models/CadObject";
import { Vec2 } from "three";
import { ICountType } from "../LookOverBoardInfos/LookOverBoardInfosTool";
declare enum FrontOrSide {
    正面反面 = 0,
    侧面 = 1
}
export declare class ErpParseData {
    GetCadData(boardList: Board[], metalsList: IHardwareType[]): {
        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][];
    GetAllDrillsObjects(boardList: Board[]): OrderDataObject[];
    GetDrillObjects(drills: ICountType[], RoomName: string, BoxName: string): OrderDataObject[];
    GetOrderTopLines(hardWares: IHardwareType[]): OrderDataObject[];
    GetOrderSealing(boardList: Board[]): OrderDataObject[];
    GetPointsArray(points: CadBlockPoint[]): number[][];
    GetHolesArray(holes: CadBlockHoles[]): (string | number)[][];
    GetModelsArray(models: CadBlockModel[]): (string | number | (string | number)[][] | (number | (number[] | number[][])[] | (number[] | number[][])[][])[])[][];
    GetOrgModelingArray(modeling: IOriginModelingData): (number | (number[] | number[][])[] | (number[] | number[][])[][])[];
    GetOrgModelingHolesArray(holes: IContourData[]): (number[] | number[][])[][];
    GetContourDataArray(data: IContourData): (number[] | number[][])[];
    GetContourPointsArray(pts: Vec2[]): number[][];
    GetModelPointsArray(points: CadBlockModelPoint[]): number[][];
    GetModelOffSetsArray(offsets: ModelOffSetData[]): (string | number)[][];
    GetBasePointArray(info: BasePosition): [string, string, string, string];
    GetPointInfoArray(info: CadBlockInfo): [object, object, object, object, object, object];
    GetBasePositionArray(basePosition: CadBlockBasePosition): [number, number, number];
    GetBasePositionListArray(basePositionList: CadBlockBasePosition[]): [number, number, number][];
    GetVec2ListArray(pointList: Vec2[]): [number, number][];
    GetVec2Array(point: Vec2): [number, number];
    GetDrillingsArray(drillings: CadBlockDrillings): number[];
    GetDrillingsListArray(drillingsList: CadBlockDrillings[]): number[][];
    GetCadModelArray(CADDbBoardList: CADDbBoard[]): any;
    groupBy(data: any[], fileds: string[]): any[];
}
export {};
//# sourceMappingURL=ParseData.d.ts.map