import { Box2 } from "../Common/Box2";
import { NestFiler } from "../Common/Filer";
import { Point } from "../Common/Point";
import { Vector2 } from "../Common/Vector2";
/**
 * 轮廓路径类
 * 可以求NFP，和保存NFPCahce
 * 因为NFP结果是按照最低点移动的,所以将点旋转后,按照盒子将点移动到0点.
 */
export declare class Path {
    OrigionPoints?: Point[];
    Id: number;
    Points: Point[];
    OutsideNFPCache: {
        [key: number]: Point[][];
    };
    InsideNFPCache: {
        [key: number]: Point[][];
    };
    constructor(OrigionPoints?: Point[], rotation?: number);
    Origion: Path;
    OrigionMinPoint: Vector2;
    Rotation: number;
    Size: Vector2;
    private Init;
    GetNFPs(path: Path, outside: boolean): Point[][];
    GetOutsideNFP(path: Path): Point[][];
    GetInsideNFP(path: Path): Point[][];
    private _InPoint;
    /**
     * 用这个点来检测是否在Path内部
     */
    private get InPoint();
    protected _BigIntPoints: Point[];
    get BigIntPoints(): Point[];
    private _BigSize;
    get BigSize(): Vector2;
    protected _MirrorPoints: Point[];
    get MirrorPoints(): Point[];
    protected _BoundingBox: Box2;
    get BoundingBox(): Box2;
    protected _Area: number;
    get Area(): number;
    set Area(a: number);
    private _IsRect;
    get IsRect(): boolean;
    ReadFile(file: NestFiler): void;
    WriteFile(file: NestFiler): void;
}
export declare function Area(pts: Point[]): number;
/**
 * 平移点表,返回新点表
 */
export declare function TranslatePath(pts: Point[], p: Point): Point[];
export declare function TranslatePath_Self(pts: Point[], mx: number, my: number): Point[];
export declare function PathScale(pts: Point[], scale: number): Point[];
//# sourceMappingURL=Path.d.ts.map