import { type Plane, type Upright } from "./turn.kit.ts"; /** A goal with a net: the mouth on the line x, the net behind it. */ export interface GoalCage { id: string; /** Where the middle of the mouth stands on its goal line, and which way the net lies behind it: +1 to larger x, -1 to smaller. */ x: number; y: number; out: 1 | -1; /** The mouth: its width across the surface and its height. */ width: number; height: number; /** How far the net reaches behind the line at the ground, and at the top of the back. */ depth: number; top: number; /** The frame's thickness, and the mesh's cell, in feet. */ post: number; cell: number; /** The frame's paint: white, or red as a hockey goal's. */ tone: "white" | "red"; } /** A goal: its mouth as three strips (two posts and the crossbar), and its net as four planes, framed. */ export declare function goalCage(g: GoalCage): Upright; /** A pair of uprights with a crossbar between them, standing on the line x (a rugby, Gaelic football or football post). */ export interface PostPair { id: string; x: number; y: number; /** Which way is behind the goal line, for a post's support. */ out: 1 | -1; /** The space between the two uprights, to the middle of each. */ gap: number; /** The crossbar's height, and the uprights' top, above the surface. */ crossbar: number; top: number; /** The strips' thickness. */ post: number; /** `slingshot`: one support behind the goal, bent to carry the crossbar (a football post); `centre`: one pole straight under the crossbar's middle; `none`: the uprights alone. */ support: "slingshot" | "centre" | "none"; /** How far behind the goal line a slingshot's support stands. */ stem?: number; /** The class of the paint: `u-yellow` for a football post, `u-white` for the others. */ cls: string; } /** A pair of uprights, a crossbar, and the support under them. */ export declare function postPair(p: PostPair): Upright; /** A flag on a pole, the flag lying along x. */ export declare function flagPole(id: string, x: number, y: number, height: number, post: number, cls?: string): Plane[]; /** A short rectangle lying flat, such as the foot of a stanchion or the shadow of a table: used where a pole needs a base. */ export declare function foot(id: string, x: number, y: number, w: number, d: number): Plane;