import type { Unit } from "../units.ts"; import { type Span } from "./fields.ts"; import { type LeagueBase } from "./types.ts"; /** The figures of a lacrosse surface, in the unit of the table they are in. `null` is what a game does not mark. */ export interface LacrosseFigures { /** `box` (a floor with boards), or the field of the `men`'s game, the `women`'s or the `pll`'s. */ kind: "box" | "men" | "women" | "pll"; length: Span; width: Span; lineWidth: number; /** The goal line's distance from the end line (the end boards on a floor). */ goalLine: number; /** The goal's opening, and the depth of the net behind the goal line. */ goalWidth: number; goalHeight: number; netDepth: number; /** The crease: the circle's radius about the middle of the goal line (men's game and the floor), and, on a floor, the flat that cuts it that far behind the goal line. */ crease: number | null; creaseFlat: number | null; /** The width of the crease line (the floor's). */ creaseLine: number | null; /** The half circle of the goal mouth, from the middle of the goal line to each goal line extended (the NCAA men's). */ goalMouth: number | null; /** The women's game: the goal circle's radius, the semicircle (the marking area) or fan, and the arc of 45-degree lines (a fan of the NCAA women's, the 11 m marking area of World Lacrosse). All from the middle of the goal line. */ goalCircle: number | null; semicircle: number | null; arcFan: number | null; /** The restraining line: its distance from the goal line (the field), or from the centre line (the floor), across the whole width. */ restraining: number | null; restrainingFromCentre: number | null; /** The NCAA men's attack-area line: the half-length of the line parallel to the goal line, and its distance from the goal line. */ attackHalf: number | null; attackFrom: number | null; /** The wing lines: their distance from the centre of the field, and how far each extends either side of the centre line. */ wings: { from: number; half: number; } | null; /** The women's game: the centre circle's radius and the short line through the centre, parallel to the goal lines. The floor: the face-off circle's outer radius and the dotted inner circle's. */ centreCircle: number | null; centreLine: number | null; faceOffOuter: number | null; faceOffInner: number | null; /** The floor: the corner face-off spots' distance from the boards and inside the restraining lines; and the floor's corner radius. */ cornerSpotWall: number | null; cornerSpotInside: number | null; cornerRadius: number | null; /** The PLL's two-point arc: its distance from the middle of the goal line at the goal line extended, and the radius of the arc across the field. */ twoPoint: { gle: number; radius: number; } | null; } /** The surface as the drawing wants it: the figures with every length in feet. */ export type LacrosseSpec = LacrosseFigures; /** A surface's figures in feet, from the unit its rulebook gives them in. */ export declare const lacrosseInFeet: (figures: LacrosseFigures, unit: Unit) => LacrosseSpec; /** A league with a lacrosse surface of its own. */ export type LacrosseLeague = LeagueBase<"lacrosse", LacrosseFigures>; /** * World Lacrosse's men's field (Men's Field Lacrosse Official Playing Rules 2025-2027, v1.1): 91.4 to 100 m long and 50 to 60 m wide (1.1); goal posts 1.83 m apart and 1.83 m high, 12 m from each end line * (2.1, 2.2); the net's anchor 2.1 m behind the goal line (4.1); the crease a circle of 3 m radius (3.1); the goal area lines 22 m from the goal line (5.1); wing lines 18 m from the centre, extending 10 m * either side of the centre line (7.1); lines 5 cm, the centre line 10 cm (12.1). The centre is an X or a 10 cm square (6.1). */ export declare const WORLD_MEN_FIELD: LacrosseFigures; /** * World Lacrosse's women's field (Women's Field Lacrosse Official Playing Rules 2025-2026, v1.1): 91.4 to 100 m by 50 to 60 m (1.A.2); the goal line 12 m from each end line and 1.83 m long (1.A.5); a goal circle of * 3 m radius (1.A.8); the 15 m marking area, a semicircle from the middle of the goal line to each goal line extended (1.A.6); the 11 m marking area, with a line from where the goal line extended meets the goal * circle at 45 degrees to it out to the 11 m radius (1.A.7); restraining lines 22 m from each goal line (1.A.9); the centre line 3 m long (1.A.10) and the centre circle 9 m in radius (1.A.11); lines 5 to 10 * cm (1.A.2). The book prints no depth for the net: the men's 2.1 m is drawn. */ export declare const WORLD_WOMEN_FIELD: LacrosseFigures; /** * The NCAA's men's field (NCAA Men's Lacrosse Rules and Interpretations, 2027 and 2028, Rule 1): 110 by 60 yards (1-2); the goal 6 ft by 6 ft, 15 yards from each end line (1-3); the net fastened 7 ft behind the * centre of the goal (1-5); a crease of 9 ft radius and a goal mouth of 6 ft radius (1-4); the attack-area line 40 yards long, 20 yards from the goal line, joined to the end lines (1-6); the defensive-area line * 20 yards from the goal line, sideline to sideline (1-7); wing lines 20 yards from the centre, 10 yards each side of the centre line (1-8); the goal line and goal mouth 2 in wide, the centre line 4 in (1-2). */ export declare const NCAA_MEN_FIELD: LacrosseFigures; /** * The NCAA's women's field (NCAA Women's Lacrosse Rules, 2026 and 2027, Rule 1): 101 to 110 m by 55 to 64 m, the optimal 110 by 60 m with the goals 92 m apart, 9 m behind each goal line (1-1); the goal 1.83 m * by 1.83 m with the net 2.1 m behind the goal line (1-18); a goal circle of 2.6 m radius (1-21); a restraining line 27 m from each goal line (1-4); a centre circle of 9 m radius and a 3 m line through the centre * (1-5); an arc of 8 m and a fan of 12 m from the goal circle, the arc ending at lines at 45 degrees to the goal line extended and the fan at the goal line extended (1-6); lines 5 to 10.1 cm, the goal line 5 cm (1-3). */ export declare const NCAA_WOMEN_FIELD: LacrosseFigures; /** * The PLL's field (2024 PLL Rulebook, Section II, the newest book found): 100 by 60 yards (A); the goal 6 ft by 6 ft, 15 yards from each end line (C, D); a crease of 9 ft radius (E); the two-point arc 13 yards from * the middle of the goal line at the goal line extended, parallel to the sideline until it is 15 yards from it, then an arc of 15 yards, and two straight lines from the goal line extended to the end line (G); wing * lines 19 yards from the centre, 10 yards each side (H); the centre line and the arc 4 in wide, the goal lines 2 in (A). The net is "approximately seven feet" back (F). */ export declare const PLL_FIELD: LacrosseFigures; /** * The NLL's floor (Official Rules 2025-26, Section 1 and Diagram A): 180 to 200 ft long and 85 wide, corners of 28 ft radius (the diagram's labels); the goal 4 ft 9 in apart and 4 ft high, the goal line 12 ft from the * end boards (2.1), poles of 4 ft 6 in behind (2.2); the crease a circle of 9 ft 3 in radius cut by a line 1 ft behind the goal line (3.1); restraining lines 42 ft 6 in from the centre line (1.5); the centre face-off * circle of 11 ft radius with a dotted circle of 17 in (6.1); corner face-off spots 5 yards from the boards and 5 yards inside the restraining lines (6.2). The NLL's book prints no line width: World Lacrosse's 2 in is drawn. */ export declare const NLL_FLOOR: LacrosseFigures; /** * World Lacrosse's box floor (Box Lacrosse Official Playing Rules 2026-2028, v2.0): the diagram's 200 ft by 85 ft, the same crease (1.1.7), goals (1.2.1), restraining lines (1.1.5) and face-off circles (1.1.9) as the * NLL's, all lines 2 in (1.1.3). Its Rule 1.2.2 says "25 m from the midline", which does not fit the feet. */ export declare const WORLD_BOX_FLOOR: LacrosseFigures; /** The lacrosse leagues: World Lacrosse's men's field first, which is what a drawing has without a league. */ export declare const LACROSSE_LEAGUES: readonly LacrosseLeague[];