/** Peak moonlight as a fraction of the authored sunlight, at the moon's highest point. * Real moonlight is ~2.5e-6 of daylight; every game exaggerates it to stay readable, and this is * the exaggeration, not a measurement. Games override it through `SkyEnvironmentConfig.moon`. */ export declare const MOONLIGHT_PEAK = 0.12; /** Moonlight's colour: scattered sunlight, blue-shifted because the eye's scotopic response peaks there. */ export declare const MOONLIGHT_COLOR = "#a9c3e8"; /** Fog color once the sun is gone: the night sky's own haze, lifted enough to keep silhouettes readable. */ export declare const NIGHT_FOG_COLOR = "#0a0e16"; /** Elevation of a world-space direction in degrees; a zero vector reads as overhead. */ export declare function elevationOf(direction: readonly [number, number, number]): number; /** * Relative air mass along a line of sight at `elevationDeg` - Kasten & Young (1989). 1 at the * zenith, ~38 at the horizon, and clamped below the horizon so a set sun does not run away. * @internal */ export declare function airMass(elevationDeg: number): number; /** * Fraction of each RGB channel of sunlight that survives the atmosphere at `elevationDeg`: * `exp(-τ · air mass)`. High sun keeps nearly all of it; a low sun loses the short wavelengths * first, which is the red sunset. * @internal */ export declare function sunTransmission(elevationDeg: number): [number, number, number]; /** * The sun's colour at `elevationDeg`, normalised so its brightest channel is full: white overhead, * orange at the horizon, moon-blue once it has set. Intensity stays the authored cycle's job. */ export declare function sunlightColor(elevationDeg: number): string; /** Perceived brightness (Rec. 709 luma) of a `#rrggbb` color, 0–1. * @internal */ export declare function luminanceOf(color: string): number; /** * Moonlight at `sunElevationDeg`'s opposite point: full at the top of the moon's arc, zero while * the moon is below the horizon, scaled by `peak` (a fraction of the authored sun intensity). */ export declare function moonIllumination(moonElevationDeg: number, peak?: number): number; /** How visible the stars are: none in daylight, half at the first hint of a set sun, full once it is 6° under. */ export declare function starOpacity(sunElevationDeg: number): number;