import { type Plane, type Upright, type UprightKind } from "./turn.kit.ts"; import { type Unit } from "./units.ts"; import { type VenueBuild } from "./venue.ts"; import type { Language, SurfaceOptions } from "./types.ts"; /** What can be asked of the uprights. */ export interface UprightOptions { /** Volleyball: the net at the men's height (2.43 m, the default) or the women's (2.24 m). */ netHeight?: "men" | "women"; /** Where the score of a score drawing goes: `board` (the default) hangs it up as a scoreboard (over the middle of a court or a rink, behind an end of a field) and takes the panel off the floor; `floor` leaves it on the floor. */ score?: "board" | "floor"; /** Leave the boards and the glass off a rink, and the walls and fence off a padel, squash or racquetball court, so that it can be seen into. On by default. */ boards?: boolean; /** Only these kinds of thing; every kind the surface has when missing. */ only?: readonly UprightKind[]; /** The venue round the surface: the stands of its crowd raised, their roof if asked, a dojo's walls with their doors and windows, its dais, banner, balconies and the edge of its mats. Off here when missing: `buildTurn` turns it on for a drawing with a crowd or a dojo. `id` is the prefix of the ids of the patterns it uses. */ venue?: VenueBuild; } /** What stands on a surface. */ export interface Uprights { items: Upright[]; /** How far the surface itself stands over the ground, in feet: a table tennis table's top, 0 on every other surface. */ lift: number; /** The thinnest line or strip drawn on this surface, in feet. */ thin: number; /** The playing surface itself in feet, the part the view is fitted to (the ground round it may run out of the picture): `undefined` for a surface with no uprights, which is fitted whole. */ area?: { x0: number; y0: number; x1: number; y1: number; }; /** The patterns the venue's planes are drawn with (the contents of an SVG `defs`), when it has any. */ defs?: string; /** How far the venue reaches beyond the surface, in feet, when it has one: the ground a floor needs for it to stand on. */ reach?: number; } /** All the planes of all the things. */ export declare const planesOf: (u: Pick) => Plane[]; /** What stands on the surface the options draw: nothing on a curling sheet, which is flat. */ export declare function uprightsFor(o: SurfaceOptions, settings?: UprightOptions): Uprights; /** The unit the heights are said in: the options' own, else the rulebook's of the sport. */ export declare function heightUnit(o: Pick): Unit; /** What stands on the surface, in a sentence, with heights: for a reader who cannot see the 3D view. An empty string when nothing stands on it. */ export declare function describeUprights(o: SurfaceOptions, uprights: Uprights, language?: Language): string;