/** * One coherent metal guard laid out along a rail path, as oriented boxes — a * fabricated steel guardrail in metres: a slim square post at each end (and * every bay ≤ 4 ft between), welded to a flat baseplate that mounts it to the * tread rather than embedding below it, a flat top rail and a bottom rail that * follow the path with a fitting block closing every interior corner, and * slender square balusters spanning the two rails. It shares the path sampling, * corner finding and newel/picket stations in `guard-path.ts` with the baluster, * deck post-and-rail, cable, boards and glass guards, so a straight flight, a * chained L/U landing turn, a winder, a curved or spiral sweep and an integrated * top landing all read as the same guard; only the sections, the surface-mounted * feet and the slim infill differ. Pure data — no Three.js, no React. * * Unlike the wood guards, a steel post is not sunk into the structure: it stands * on the nosing line on a baseplate, the mounting foot that grounds it. The * infill is plumb slender bars spanning rail to rail, so nothing crosses the * walking volume on a slope and every member meets another. * * `reach` runs the rails that far past the top vertex along the final slope to * die into a post standing there; `topPost: false` then omits the top post. * `postThrough` runs the posts past the top rail with a small cap of their own. */ import { type GuardBox, type GuardRail, type Vec3 } from './guard-path.js'; export type MetalGuardOptions = { railHeight: number; /** Metres between posts along the run; omit (or Infinity) for ends only. */ postSpacing?: number; topPost?: boolean; postThrough?: boolean; /** Metres the rails run past the top vertex, along the final slope. */ reach?: number; }; /** The metal guard's two rails, bottom-to-top: a slim bottom rail held off the * nosing line and a flat top rail with its top at the guard height. Shared with * the flight connector so a bridge carries the same rails as the guards it joins. */ export declare function metalGuardRails(railHeight: number): GuardRail[]; export declare function buildMetalGuard(points: Vec3[], options: MetalGuardOptions): GuardBox[]; //# sourceMappingURL=metal-guard.d.ts.map