import { Texture, Vector4 } from "three"; import { type Renderer } from "./Renderer.js"; /** * This component is automatically added by the {@link Renderer} component if the object has lightmap uvs AND we have a lightmap. * * @category Rendering * @group Components */ export declare class RendererLightmap { get lightmap(): Texture | null; set lightmap(tex: Texture | null); private lightmapIndex; private lightmapScaleOffset; private readonly renderer; private _isApplied; private get context(); private get gameObject(); private lightmapTexture; constructor(renderer: Renderer); init(lightmapIndex: number, lightmapScaleOffset: Vector4, lightmapTexture: Texture): void; updateLightmapUniforms(_material: any): void; /** * Apply the lightmap to the object using MaterialPropertyBlock instead of cloning materials. * The lightmap texture and its per-object UV transform are set as overrides via PropertyBlock. * Three.js reads material.lightMap to determine shader defines and upload uniforms, * and uses texture.offset/repeat to compute lightMapTransform in the vertex shader. */ applyLightmap(): void; /** Update the lightMap override on all property blocks (e.g. after LOD swap) */ private updatePropertyBlockTexture; /** * Remove the lightmap from the object */ onUnset(): void; private ensureLightmapUvs; private setLightmapDebugMaterial; }