import { type Parts } from "./oval.ts"; import { type RaceContext } from "./races.ts"; import { type Oval, type Pose } from "./track.ts"; import type { RaceInfo, WaterJump } from "./types.ts"; type Pt = [number, number]; /** The figures of the diverted bend with the jump inside (Manual 2.2.4.1, comments on Figure 2.2.4.1a): the arcs of the oval's radius, the transitions and the straight between them. */ export declare const INSIDE: { /** The length of the lap, from A to A. */ readonly lap: 396.0849; /** The angle of the arc on the oval's own circle before the transition: 42.5525 degrees, 27.3307 m on the 36.80 m running line. */ readonly b2: 27.3307; /** The transition: 13.41545 m on a 16.20 m radius, 47.4475 degrees. */ readonly b1: 13.41545; readonly radius: 16.2; /** The straight between the transitions. */ readonly middle: 30.202; /** The distance of the centres of the transition arcs from the second semicircle's centre, along the axis and across it. */ readonly centre: { readonly out: 13.863; readonly across: 15.101; }; /** The distance of each of the five hurdles from the finish line along the lap. */ readonly hurdles: readonly [21.997, 101.214, 180.431, 259.648, 338.865]; readonly start3000: 172.594; readonly start2000: 376.504; }; /** The figures of the lap with the jump outside (Manual 2.2.4.1, Figure 2.2.4.1b and 2.2.4.1e). */ export declare const OUTSIDE: { readonly lap: 419.407; readonly straight: 9.86; readonly radius: 36.7; readonly hurdles: readonly [17.866, 101.747, 185.628, 269.509, 353.39]; readonly start3000: 355.256; readonly start2000: 97.035; }; /** The steeplechase hurdle's figures (Rule 23.5 and 23.6; Figure 2.2.4.1c): at least 3.94 m wide and 0.127 m square at the top; the water jump's hurdle and pit are 3.66 m. */ export declare const HURDLE: { readonly width: 3.94; readonly bar: 0.127; readonly inside: 0.3; readonly pit: 3.66; }; /** The pose of the steeplechase's running line `s` metres from the finish line, with the diverted part of the lap and the oval's offset inside. */ export interface ScPose extends Pose { /** How far the track's inside edge is inside the running line: 0.30 m on the oval, 0.20 m where the lap is diverted from it. */ innerOffset: number; /** True where the lap is off the oval's own line. */ diverted: boolean; } /** The oval's lane 1 distance that a distance along the steeplechase lap comes to where the two are the same line, and `undefined` where the lap is diverted. */ export declare function standardDistance(o: Oval, variant: WaterJump, s: number): number | undefined; /** The length of the lap with the jump where it is. */ export declare const scLap: (_o: Oval, variant: WaterJump) => number; /** A point of the steeplechase's running line. */ export declare function scPose(o: Oval, variant: WaterJump, s: number): ScPose; /** The box round the water jump's pit, in metres. */ export declare function waterPitBox(o: Oval, variant: WaterJump): { x0: number; y0: number; x1: number; y1: number; }; /** The steeplechase's marks: the diverted border, the five hurdles, the water jump, and the start of the race (curved, with the outer group's line for the 3000 m). */ export declare function steeplechaseParts(ctx: RaceContext, variant: WaterJump, race: RaceInfo | undefined, drawLap: boolean): { parts: Parts; start?: { s: number; curve: Pt[]; group?: Pt[]; }; }; export {};