/** * Halo mode state machine for the atmosphere shell. * * "Halo mode" collapses the volumetric shell to a thin fresnel-driven * liseré at the silhouette, in the pure body tint — used by the * playable-sol view to advertise the atmosphere's full radius without * covering the body's centre with bands, clouds or painted-tile * colours. * * Behaviour on enable: * - opacity drops to a fraction of the baseline ({@link HALO_OPACITY_FACTOR}) * - `cloudAmount`, `storms`, `tileColorMix` zeroed * - `uRimOnly` flag set so the shader's rim-only path kicks in * - blending switches to additive so the rim reads as a glow even at * low opacity against dark backgrounds * * On disable, baseline values captured at construction are restored — * any `setOpacity`/`setParams` calls made *while* halo mode was active * are NOT preserved on toggle off. Callers that need live tuning should * keep parameter mutations outside halo mode. */ import * as THREE from 'three'; /** Baseline values captured at shell-build time. */ export interface AtmoShellBaseline { opacity: number; cloudAmount: number; storms: number; tileColorMix: number; } /** Handle returned by {@link createAtmoShellHaloMode}. */ export interface AtmoShellHaloMode { setEnabled: (enabled: boolean) => void; } /** * Builds the halo-mode toggle for an atmosphere shell. Mutates the * provided uniforms and material in place; idempotent (re-enabling / * re-disabling the same state is a no-op). */ export declare function createAtmoShellHaloMode(input: { uniforms: Record; material: THREE.ShaderMaterial; baseline: AtmoShellBaseline; }): AtmoShellHaloMode; //# sourceMappingURL=atmoShellHaloMode.d.ts.map