import { type Cut } from "./venue.geom.ts"; import { type Upright } from "./turn.kit.ts"; import type { SurfaceOptions } from "./types.ts"; /** What can be asked of the venue. */ export interface VenueSettings { /** Roofs and canopies over the top tier of the stands: a canopy over the back of the top tier in the open, a lid over a hall. They give way to the eye as the walls do. Off by default. */ roof?: boolean; /** How finely the curves are cut: `low` a facet to each corner, `auto` (the default) three, `high` six; an oval is 12, 28 or 56 facets round. */ detail?: Cut; } /** The settings a venue is built from: the asker's, and the prefix of the ids of what it draws, which the view gives. */ export interface VenueBuild extends VenueSettings { id: string; } /** What the venue is made of: the things that stand, and the patterns they are drawn with (the contents of a `defs`). */ export interface Venue { items: Upright[]; defs: string; /** How far the venue reaches beyond the surface's box on its widest side, in feet: the ground the floor needs for it to stand on. 0 for none. */ reach: number; } export declare const NO_VENUE: Venue; /** How far the roof stands over the top row at its edge, in feet (ours: no rule gives it), and how far it reaches over the seats. */ export declare const ROOF: { readonly clearance: 26; readonly canopyReach: 0.62; readonly canopyDrop: 6; readonly lidRise: 26; }; /** The stands of a surface as planes: `undefined`-free, an empty venue when the options have no crowd (or the crowd is a hall's gallery, which `venue.room.ts` raises). */ export declare function standsVenue(o: SurfaceOptions, v: VenueBuild, lift: number): Venue;