import * as THREE from 'three'; import type { RingVariation } from './ringVariation'; /** * Patches a planet's ShaderMaterial with ring-cast-on-planet shadowing. * * The shader ray-casts from each fragment toward the sun and, if the ray * crosses the ring plane inside [innerR, outerR], samples the same profile * used by {@link BodyRings} to attenuate the surface lighting. * * This follows the same "prepend uniforms + inject before main's closing brace" * pattern as {@link injectPlanetShadows} so both injections compose cleanly. * * @param mat - Planet ShaderMaterial (must be patched BEFORE first render). * @param ring - The ring variation driving the shadow pattern. * @param opts - Optional overrides. `sunPosRef` lets preview scenes point the * shader at a light source other than the world origin. */ export declare function injectRingShadow(mat: THREE.ShaderMaterial, ring: RingVariation, opts?: { /** Shared `{ value }` reference for the sun world position. Defaults to origin. */ sunPosRef?: { value: THREE.Vector3; }; /** Planet visual radius — used to resolve ring inner/outer world radii. */ planetRadius: number; }): void; //# sourceMappingURL=ringShadowInjection.d.ts.map