import type { Area, Shape } from "../fields.types.ts"; /** What a part of a plan adds. */ export interface Parts { areas: Area[]; shapes: Shape[]; } export declare const emptyParts: () => Parts; /** Add `more` to `into`. */ export declare function addParts(into: Parts, more: Parts): void; /** A box in metres. */ export interface MBox { x0: number; y0: number; x1: number; y1: number; } /** A named part of the plan to crop to, in metres: one box, or one at each end (`left` and `right` as the surface is drawn wide). */ export type MRange = MBox | { left: MBox; right: MBox; }; /** A part of the plan to label (`landmarks`): where it is, in metres, and the side of the drawing its label stands on. */ export interface MMark { id: string; x: number; y: number; side: "top" | "bottom"; } export declare const grow: (b: MBox, m: number) => MBox; export declare const union: (boxes: readonly MBox[]) => MBox; export declare const boxOf: (cx: number, cy: number, w: number, h: number) => MBox; export declare const shifted: (b: MBox, dx: number, dy: number) => MBox;