import { type ToneMapping } from 'three/webgpu'; import { AtmosphereContext, AtmosphereLight } from '@takram/three-atmosphere/webgpu'; import type { Viewer } from 'u-space'; export interface AtmosphereOptions { /** Longitude in degrees. Used as the local scene origin. */ longitude?: number; /** Latitude in degrees. Used as the local scene origin. */ latitude?: number; /** Height above WGS84 ellipsoid in meters. */ height?: number; /** Date used for sun and moon directions. Defaults to current local 08:00. */ date?: number | Date; showSun?: boolean; showMoon?: boolean; showStars?: boolean; showGround?: boolean; useSkyEnvironment?: boolean; raymarchScattering?: boolean; lighting?: boolean; transmittance?: boolean; inscattering?: boolean; moonScattering?: boolean; lensFlare?: boolean; temporalAntialias?: boolean; dithering?: boolean; toneMapping?: ToneMapping | false; toneMappingExposure?: number; castShadow?: boolean; shadowMapSize?: number; shadowCameraSize?: number; shadowCameraNear?: number; shadowCameraFar?: number; shadowBias?: number; shadowNormalBias?: number; shadowRadius?: number; shadowDistance?: number; } declare class Atmosphere { #private; viewer: Viewer; constructor(viewer: Viewer); get enabled(): boolean; get context(): AtmosphereContext | null; get light(): AtmosphereLight | null; enable(options?: AtmosphereOptions): this; update(options?: AtmosphereOptions): this; setLocation(longitude: number, latitude: number, height?: number): this; setDate(date: number | Date): this; updateDate(date?: number | Date): this; disable(): this; dispose(): this; } export { Atmosphere };