/** * SkyRenderer.ts * * Procedural sky: gradient colors, star field, cloud layers, * sun/moon discs, and atmospheric scattering approximation. * * @module environment */ export interface SkyGradient { top: { r: number; g: number; b: number; }; horizon: { r: number; g: number; b: number; }; bottom: { r: number; g: number; b: number; }; } export interface StarField { seed: number; density: number; brightness: number; twinkleSpeed: number; } export interface CloudLayer { id: string; altitude: number; coverage: number; speed: { x: number; z: number; }; color: { r: number; g: number; b: number; a: number; }; scale: number; offset: { x: number; z: number; } & Record; } export interface CelestialBody { visible: boolean; angle: number; size: number; color: { r: number; g: number; b: number; }; intensity: number; } export declare class SkyRenderer { private syncCloudCompat; private gradient; private stars; private clouds; private sun; private moon; private moonPhase; private starsVisible; setGradient(gradient: SkyGradient): void; getGradient(): SkyGradient; sampleGradient(t: number): { r: number; g: number; b: number; }; private lerpColor; setStarField(config: Partial): void; setStarsVisible(visible: boolean): void; areStarsVisible(): boolean; getStarField(): StarField; addCloudLayer(coverage: number, altitude?: number, speed?: { x: number; z: number; } | [number, number, number]): CloudLayer; removeCloudLayer(id: string): boolean; getCloudLayers(): CloudLayer[]; getCloudCount(): number; updateClouds(dt: number): void; setSunAngle(angle: number): void; setMoonAngle(angle: number): void; setMoonPhase(phase: number): void; getMoonPhase(): number; getSun(): CelestialBody; getMoon(): CelestialBody; applyDaytime(): void; applySunset(): void; applyNight(): void; getTotalCoverage(): number; } //# sourceMappingURL=SkyRenderer.d.ts.map