import { path, line, poly } from "../fields.kit.ts"; 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 rink 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; /** The path of a stadium: two semicircles of radius `r` joined by straights of length `s`, about the origin, drawn from the top left, clockwise as the eye sees it. */ export declare const stadiumD: (s: number, r: number) => string; /** A point of a curve of the oval: `side` is the right-hand curve (centre at x = s/2, entered at the bottom) or the left-hand one (centre at x = -s/2, entered at the top); `t` the angle from the entrance. */ export declare function curvePoint(s: number, side: "right" | "left", r: number, t: number): [number, number]; /** The path of an arc of a curve of the oval from the angle `t0` to `t1`, in the way the skaters go (counter-clockwise as the eye sees it). */ export declare function curveD(s: number, side: "right" | "left", r: number, t0: number, t1: number): string; /** * The blocks of a curve as dots: a dashed path with a zero dash and round caps, so that a dot of the line's width stands every `near` metres for the first `nearLength` metres from the entrance and * every `far` metres after, the cone at the entrance a dot of its own (Rule 226). */ export declare function blocksOf(id: string, s: number, side: "right" | "left", r: number, near: number, nearLength: number, far: number, width: number): Shape[]; export { line, poly, path };