import type { FieldPlan } from "./fields.types.ts"; import { type FencePoint, type FootballSpec } from "./geometry.ts"; import type { SoccerSpec } from "./surfaces/soccer-spec.ts"; import type { ParkWall } from "./parks.ts"; import { type Plane, type Upright } from "./turn.kit.ts"; /** * The crossbar of a football post is 10 ft over the ground (NFL 2026 Rule 1-3-1: "the top face of which is 10 feet above the ground"; CFL 2026 Rule 1-1-1: * "a height of 10 feet"; NCAA 2025 Rule 1-2-5-a: "the top of which is 10 feet above the ground"). The uprights reach 35 ft over the bar in the NFL (Rule 1-3-2: 45 ft * in all), 40 ft above the ground in the CFL (Rule 1-1-1: "extend 40 feet above ground level"), and at least 30 ft above the ground in the NCAA (Rule 1-2-5-a), the * figure drawn for every other league. */ export declare const FOOTBALL_CROSSBAR = 10; /** The pylon is 18 in high: the NFL's Rule 1-2-3 names pylons but not their size; BAFA's Appendix D (14) recommends 4 in by 4 in and 18 in. */ export declare const PYLON_HEIGHT = 1.5; /** A football field's uprights: the post at each end and the eight pylons. `shape` is the post of the season, `top` the height of the uprights above the ground. */ export declare function footballUprights(spec: FootballSpec, shape: "h" | "slingshot", top: number, thin: number): Upright[]; /** A soccer pitch's uprights: both goals and, unless the options turn them off, the four corner flags. */ export declare function soccerUprights(spec: SoccerSpec, flags: boolean, thin: number): Upright[]; /** The rugby posts, Gaelic goal posts, Australian football posts and cricket stumps; a goal with a net for the sports that have one. */ export declare function fieldUprights(plan: FieldPlan, thin: number): Upright[]; /** The fence's height where no wall is listed: 8 feet. */ export declare const FENCE_HEIGHT = 8; /** How high the wall stands at an angle from dead centre, the wall that names it or the usual 8 feet. */ export declare const wallHeightAt: (walls: readonly ParkWall[], angle: number) => number; /** The planes of a fence: one standing wall over each stretch of its line, as high as the wall there. */ export declare function fencePlanes(points: readonly FencePoint[], walls: readonly ParkWall[], thin: number): Plane[]; /** * A ballpark's uprights: the fence, the two foul poles where the foul lines meet it, and the backstop behind home plate. Official Baseball Rules 2025, 2.01, gives no height * for a fence or a foul pole, and only recommends the backstop 60 ft or more from home base: the 8 ft of the fence where no wall is listed, the poles' 30 ft and the * screen's 70 ft by 20 ft are ours. */ export declare function ballparkUprights(points: readonly FencePoint[], walls: readonly ParkWall[], thin: number): Upright[];