import type { Area, Shape } from "../fields.types.ts"; import { type BudoFigures, type BudoLeague } from "../leagues/budo.ts"; import type { SurfaceOptions } from "../types.ts"; import { type DojoLayout } from "./dojo.ts"; import { type JudoLayout } from "./judo.ts"; import { type KarateLayout } from "./karate.ts"; import { type KendoLayout } from "./kendo.ts"; import { type KyudoLayout } from "./kyudo.ts"; import { boxD } from "./kit.ts"; import { type MBox, type MMark, type MRange } from "./parts.ts"; import { type SumoLayout } from "./sumo.ts"; import type { BudoKind } from "./types.ts"; export type { MBox, MMark, MRange }; /** The apothem of the Nippon Budokan's arena, an octagon 55 m across the flats (the Budokan's leaflet). */ export declare const BUDOKAN_ARENA = 27.5; /** What a budō drawing is. */ export interface BudoPlan { sport: BudoKind; league: string; figures: BudoFigures; /** The look (the colours of the mats and the floor). */ look: string; /** The mats are drawn with the weave of rice straw. */ texture: boolean; /** The playing surface: the mats of a competition area, the shiai-jo's floor, the dohyō's clay, the whole range of a kyūdōjō, a dojo's floor. The data frame's own box. */ box: MBox; /** Everything drawn: the box and what lies beyond it (the free zone, the furniture). */ extent: MBox; areas: Area[]; shapes: Shape[]; /** The width the ordinary line is painted at by the rules, and the width it is drawn at unless `exactLines` says otherwise. */ lineWidth: number; drawnLine: number; ranges: Readonly>; marks: MMark[]; /** The arena floor under the surface, for the Nippon Budokan. */ hall: "budokan" | undefined; /** The centre of the surface and the radius of the circle a pageant's emblem lies in, in metres. */ centre: { x: number; y: number; r: number; }; /** The layout of the sport: one of these is set. */ judo?: JudoLayout; karate?: KarateLayout; kendo?: KendoLayout; sumo?: SumoLayout; kyudo?: KyudoLayout; dojo?: DojoLayout; } /** The sports of the budō family. */ export declare const BUDO_SPORTS: readonly BudoKind[]; /** True for a sport of the budō family. */ export declare const isBudoSport: (sport: string) => sport is BudoKind; /** The league a set of options asks for: a rulebook's, else the sport's own. */ export declare function budoLeague(o: Pick): BudoLeague; /** The octagon of the Budokan's arena as a path, centred on (cx, cy). */ export declare function octagonD(cx: number, cy: number, a: number): string; /** True when a point lies inside the Budokan's octagon about (cx, cy). */ export declare const inOctagon: (cx: number, cy: number, a: number, x: number, y: number) => boolean; /** The budō plan the options ask for. */ export declare function budoPlan(o: Pick): BudoPlan; export { boxD };