import type { DeckLook, PoolLook } from "./pool.types.ts"; import { type BuildOptions } from "./surfaces/surface.ts"; /** A small generator of numbers from 0 up to 1 that starts from a seed (mulberry32): the same seed gives the same list. */ export declare function seeded(seed: number): () => number; /** The side of the tile of light, in feet (about 5 m). */ export declare const CAUSTIC_TILE = 16; /** * The light on the water: a tile of closed, softly bent cells like the net of light at the bottom of a pool, from the seed. The cells at the tile's edge are drawn again on the far side, so that the * tile repeats without a seam. Returns the path of all of them. */ export declare function causticPath(seed: number, size?: number): string; /** The ids of what a pool defines for its paint. */ export interface PoolIds { caustic: string; floor: string; deck: string; water: string; } /** What a pool is drawn with when it is one of several in a hall: the ids of the paint the hall defines once, and no deck, no defs, no plates and no section of its own. */ export interface PoolCtx { ids?: PoolIds; bare?: boolean; } /** The ids a drawing's pools share: they follow the drawing's own prefix. */ export declare const poolIds: (id: string) => PoolIds; /** The metres of a tile of the floor (drawn; real tiles are finer) and of the deck. */ export declare const FLOOR_TILE = 0.5; export declare const DECK_TILE = 0.6; /** * The patterns and the gradient a pool's paint needs, for a look and a deck. Each is defined once, however many pools use it. A flat pool with a plain deck needs none. */ export declare function paintDefs(ids: PoolIds, look: PoolLook, deck: DeckLook, seed: number): string; /** A rectangle in metres from its corners, as feet. */ export declare function box(o: Pick, names: string | readonly string[], cls: string, x0: number, y0: number, x1: number, y1: number, more?: Record): string; /** * The water of a pool, in metres from the corner `(x, y)`: the colour, then, for a look that has it, the gradient across the lanes, the floor's tiles and the light on the water. Tiles and light are * laid at the pool's own place, so that two pools side by side show one floor. */ export declare function waterMarkup(o: Pick, ids: PoolIds, look: PoolLook, x: number, y: number, length: number, width: number, clip?: string): string; /** The deck as a rectangle in feet: the colour, then its tiles. */ export declare function deckMarkup(o: Pick, ids: PoolIds, deck: DeckLook, x: number, y: number, w: number, h: number): string; /** The widths a pool draws at: a rope is at least this wide on the page unless the true widths are asked for. */ export declare function leastWidth(o: Pick, trueMetres: number, drawnMetres: number): number; /** * A row of lane ropes as one path per colour: each rope's runs of floats as round dots at the pitch of the floats. `runs` are `[colour, x0, x1, y]` in metres. Round caps on a dash of no length make a dot, * so a rope of 330 floats is one subpath. A float is `metres` across, drawn at least `drawn` metres across. */ export declare function ropeMarkup(o: Pick, runs: readonly (readonly [string, number, number, number])[], metres: number, drawn: number): string;