import * as THREE from 'three'; import { type RenderQuality } from '../quality/renderQuality'; /** * Runtime handle returned by {@link buildCoreMesh}. Wraps the molten inner-core * sphere mesh, the radiating point-light at its centre, the per-frame * animation hook driving both, and a disposal entry point. */ export interface CoreMesh { mesh: THREE.Mesh; /** Pulsing point-light parented to the mesh — escapes the body wherever a sol tile has been mined out. */ light: THREE.PointLight; radius: number; /** Advances the fire shader animation and the light's breathing intensity. */ tick: (elapsed: number) => void; dispose: () => void; } /** * Configuration accepted by {@link buildCoreMesh}. `coreRadiusRatio` defaults * to {@link DEFAULT_CORE_RADIUS_RATIO} when omitted. */ export interface CoreMeshConfig { radius: number; coreRadiusRatio?: number; /** Optional render-quality bag — bumps the icosphere detail in `'high'`. */ quality?: RenderQuality; } /** * Builds the molten inner-core sphere shared by every non-stellar body. * * The core sits at `radius * coreRadiusRatio` and is rendered with a * procedural fire shader (warped FBM + sparkle layer over a deep-red → * white-hot palette). A {@link THREE.PointLight} is parented to the mesh * so the light follows the body's transform and only escapes the planet * through tiles that have been mined down to band 0. * * The mesh is non-interactive (`raycast = () => {}`) — tile picking * happens on the surrounding sol layer. * * @param cfg - Core mesh configuration (radius, optional ratio). * @returns The mesh, its accompanying light, world radius, per-frame * tick and a disposal hook. */ export declare function buildCoreMesh(cfg: CoreMeshConfig): CoreMesh; //# sourceMappingURL=buildCoreMesh.d.ts.map