/** * EnvironmentPresets.ts * * Pre-built environment configurations for skybox, lighting, fog, and atmosphere. * Provides time-of-day and weather systems. * * @module environment */ import { IVector3 } from '../physics/PhysicsTypes'; export interface SkyboxConfig { type: 'color' | 'gradient' | 'hdri' | 'procedural'; topColor: string; bottomColor: string; horizonColor?: string; hdriAsset?: string; turbidity?: number; rayleigh?: number; sunPosition?: IVector3; } export interface LightConfig { type: 'directional' | 'ambient' | 'point' | 'spot'; color: string; intensity: number; direction?: IVector3; position?: IVector3; castShadows?: boolean; shadowMapSize?: number; } export interface FogConfig { type: 'none' | 'linear' | 'exponential' | 'exponential2'; color: string; near?: number; far?: number; density?: number; } export interface AtmosphereConfig { ambientOcclusion: boolean; bloom: boolean; bloomIntensity: number; bloomThreshold: number; toneMappingExposure: number; colorGrading?: { saturation: number; contrast: number; temperature: number; }; } export interface EnvironmentConfig { id: string; name: string; skybox: SkyboxConfig; lights: LightConfig[]; fog: FogConfig; atmosphere: AtmosphereConfig; } export interface TimeOfDayConfig { sunriseHour: number; sunsetHour: number; currentHour: number; daySpeed: number; } export interface WeatherState { type: 'clear' | 'cloudy' | 'rain' | 'storm' | 'snow' | 'fog'; intensity: number; windDirection: IVector3; windSpeed: number; transitionProgress: number; } export declare const PRESET_SUNNY_DAY: EnvironmentConfig; export declare const PRESET_SUNSET: EnvironmentConfig; export declare const PRESET_NIGHT: EnvironmentConfig; export declare const PRESET_OVERCAST: EnvironmentConfig; export declare const PRESET_SCIFI: EnvironmentConfig; export declare const ALL_PRESETS: EnvironmentConfig[]; export declare class EnvironmentManager { private currentEnv; private timeOfDay; private weather; constructor(preset?: EnvironmentConfig); setEnvironment(config: EnvironmentConfig): void; getEnvironment(): EnvironmentConfig; setPreset(presetId: string): boolean; getPresetIds(): string[]; setTimeOfDay(hour: number): void; advanceTime(deltaSeconds: number): void; getTimeOfDay(): TimeOfDayConfig; private updateSunFromTime; setWeather(type: WeatherState['type'], intensity?: number): void; getWeather(): WeatherState; updateWeatherTransition(dt: number): void; } //# sourceMappingURL=EnvironmentPresets.d.ts.map