import { Paths } from "js-angusj-clipper/web";
import { Box2 } from "../Common/Box2";
import { NestFiler } from "../Common/Filer";
import { Point } from "../Common/Point";
import { Part } from "./Part";
import { Path } from "./Path";
import { PlaceType } from "./PlaceType";
/**
 * 排料零件的容器,用来放置零件
 * 它是一块大板
 * 也可以是一个网洞
 * 也可以是余料
 */
export declare class Container {
    BinPath?: Path;
    private _PlaceType;
    ComparePosFnKey: string;
    ParentId: number;
    ChildrenIndex: number;
    ParentM: Point;
    PlacedParts: Part[];
    PlacedArea: number;
    PlacedBox: Box2;
    PlacedHull: Point[];
    StatusKey: string;
    IsPrePlace: boolean;
    private CompartePoint;
    constructor(BinPath?: Path, _PlaceType?: PlaceType, ComparePosFnKey?: string);
    private UpdateCurNotPuts;
    get UseRatio(): number;
    get UseAreaRatio(): number;
    get PlaceType(): PlaceType;
    private _NotPuts;
    private _CurNotPuts;
    private PrePut;
    private Calc;
    PutPart(p: Part, greedy?: boolean): boolean;
    protected GetNFPs(part: Part, binNfp: Point[][]): Paths;
    /**
     * 将Part添加的Placed列表
     * @param part 零件,已经计算了放置状态
     * @param [calc=true] 是否计算当前的容器状态?
     */
    private AppendPart;
    /**
     * 得到最左边的点
     */
    protected GetFarLeftP(nfp: Point[][]): Point;
    Clone(): Container;
    ReadFile(file: NestFiler, parts: Part[]): this;
    WriteFile(file: NestFiler): void;
}
//# sourceMappingURL=Container.d.ts.map