import { type Unit } from "../units.ts"; import type { LeagueBase } from "./types.ts"; /** The figures of the standard 400 m speed skating track, in metres. */ export interface LongTrackFigures { kind: "long-track"; /** The radius of the inner edge of the inner lane: 25 m to 26 m (Rule 203.1); 25 m drawn. */ innerRadius: { min: number; max: number; drawn: number; }; /** The width of the inner competition lane (Rule 203.3). */ innerLane: number; /** The width of the outer competition lane: at least 4 m (Rule 203.3), 4 m drawn. */ outerLane: { min: number; max: number; drawn: number; }; /** The warm-up lane inside the competition lanes: at least 4 m wide (Rules 205 and 206). */ warmUpLane: number; /** The length of a lap, measured 0.5 m outside the inner edge (Rule 227.1), the lane alternating at the crossing: at most 400 m (Rule 203.1). */ lap: number; /** How far outside a lane's inner edge it is measured: 0.5 m (Rule 227.1). */ measure: number; /** The width of the lane lines (fully painted, Rule 226) and of the starting and finishing lines (not more than 5 cm, Rule 227.2). */ line: number; /** The blocks of a curve: 50 cm apart for the first 15 m, 2 m apart after (Rule 226). */ blocks: { near: number; nearLength: number; far: number; height: number; }; /** The pre-start line before a starting line, and how much of the finishing line is marked by the metre (Rule 227.2). */ preStart: number; finishMetres: number; /** The coaches' area on the crossing straight: a line 1 m from the outside edge, from 25 m after the end of one curve to 10 m before the next (Rule 227.3). */ coaches: { offset: number; after: number; before: number; }; /** The padding round the track: at least 80 cm high, 30 cm thick, and any fixed object at least 3 m from the edge (Rule 228.2). */ padding: { thick: number; clear: number; }; } /** The figures of the short track speed skating oval, in metres. */ export interface ShortTrackFigures { kind: "short-track"; /** The length of a lap (Rule 280.1a and the diagram): 2 x S + 2 x C x pi. */ lap: number; /** The distance between the centres of the curves, S, and the radius of the track's line, C (the diagram). */ straight: number; radius: number; /** The radius of the blocks: the line of the track is 0.5 m outside them (R8.00 in the diagram). */ blocks: number; /** The blocks of a curve: seven (Rule 280.4). */ blocksPerCurve: number; /** The least width of the straight, from the blocks to the barrier, and from the apex block to the barrier (Rule 280.1b and 280.1c). */ straightWidth: number; apexClear: number; /** The least size of the rink for ISU events (Rule 280.1a). */ rink: { length: number; width: number; }; /** The other tracks laid out beside the standard one (Rule 280.1e and the diagram): how many, how far each is moved along the straight, and the distance between starting lines. */ tracks: { five: { shift: number; lines: number; }; seven: { shift: number; lines: number; }; }; /** The finishing line is the width of the straight and this much more; the lines are not more than 2 cm wide (Rule 280.2). */ finishExtra: number; line: number; /** The starting positions of the 500 m and the 1000 m: five dots of 2 cm every 1.3 m, from 50 cm out from the inner side of the track (Rule 280.2c). */ dots: { count: number; step: number; from: number; diameter: number; }; /** The laps of each distance (the diagram): 500 m = 4 1/2 laps ... 5000 m = 45 laps. At the ISU Championships and the Olympic Winter Games the 3000 m is the women's relay, the 5000 m the men's and the 2000 m the mixed relay (Rule 281.1a); the individual distances are 500, 1000 and 1500 m, and 3000 m in the World Cup. */ laps: { "500m": number; "1000m": number; "1500m": number; "3000m": number; "3000m-relay": number; "5000m-relay": number; "2000m-mixed-relay": number; }; /** The inner surface of the track, coloured, lies this far inside the blocks (the diagram: the finishing line reaches 1.5 m in). */ inner: number; } /** The figures of a figure skating rink, in metres. */ export interface FigureRinkFigures { kind: "figure"; /** The skating area: if possible 60 m by 30 m, not larger and not less than 56 m by 26 m (Rule 342.1). */ length: { min: number; max: number; drawn: number; }; width: { min: number; max: number; drawn: number; }; /** The radius of the corners, which the Rules do not give: ours. */ corner: number; /** The boards' thickness as drawn, and the depth of a judges' station and of the technical panel's table, which the Rules do not give: ours. */ boards: number; } /** The figures of a skating league. */ export type SkatingFigures = LongTrackFigures | ShortTrackFigures | FigureRinkFigures; /** A league with a skating surface of its own. */ export type SkatingLeague = LeagueBase<"skating", SkatingFigures>; /** The figures in feet, as the drawing's units are: the lengths only, not the counts, the laps or the angles. */ export declare function skatingInFeet(figures: SkatingFigures, unit: Unit): SkatingFigures; /** * The standard 400 m speed skating track (Rules 203 and 227 and "Measurements of standard 400m speed skating tracks"): two lanes, the inner 4 m wide and the outer at least 4 m, the inner curve of radius * 25 m to 26 m, the track measured 0.5 m outside the inner edge of each lane, a lap of 400 m made of two straights, an inner curve, an outer curve and the crossing, since a skater changes lanes once a lap. */ export declare const ISU_LONG_TRACK: LongTrackFigures; /** The short track oval (Rule 280 and the diagram "Track numbers"): S = 28.85 m, C = R8.50 m, a lap of 111.12 m on a rink of 60 by 30 m at the least. */ export declare const ISU_SHORT_TRACK: ShortTrackFigures; /** The figure skating rink (Rule 342.1): 60 m by 30 m if possible, 56 m by 26 m at the least. The corners and the boards are ours. */ export declare const ISU_FIGURE_RINK: FigureRinkFigures; /** The measurements of the three options of the standard 400 m track (the table "Measurements of standard 400m speed skating tracks"): the half of the mean axis (the straight, f) and the lengths a skater skates. */ export declare const ISU_LONG_TRACK_TABLE: Readonly>; /** The skating leagues: the long track (the sport's own), the short track and the figure skating rink. */ export declare const SKATING_LEAGUES: readonly SkatingLeague[];