import { type MlbRules } from "../eras.ts"; import { type FencePoint } from "../geometry.ts"; import { type DiamondSpec } from "../leagues/baseball.ts"; import { type BuildOptions, type Surface } from "./surface.ts"; /** The fence as points on the field: u across (negative to the left), v out from the back of home plate. */ export declare function fenceOutline(points: readonly FencePoint[], step?: number): [number, number][]; /** Home plate as the rules of a season had it: its outline, its half width and where its middle lies out from home. */ export interface PlateShape { /** An outline as a path in the field's screen coordinates (y is minus the distance out from home), or an empty string for a circle. */ d: string; circle?: { cx: number; cy: number; r: number; }; /** Half the plate's width across the line from home to the pitcher. */ halfWidth: number; /** The distance of the plate's middle from the foul lines' meeting, out towards the pitcher. */ centre: number; } /** * Home plate in a season: a round plate, a square, the square turned, or the pentagon, centred on the foul lines' meeting, wholly * behind it, or in front of it as now. `grow` draws it larger than life, as the rest of the field's small things are. */ export declare function plateShape(era: Pick, grow: number, plate?: { width: number; side: number; }): PlateShape; /** * The baseball field: grass, warning track, infield, bases, lines and the fence of a park, with the markings of a season (today's * by default). With a `diamond` (leagues.ts) the field of a league, in feet: Little League's, a softball field. */ export declare function baseball(points: readonly FencePoint[], o: BuildOptions, era?: MlbRules, diamond?: DiamondSpec): Surface;