import { type Scene, AmbientLight, DirectionalLight, PointLight, SpotLight, HemisphereLight, type ColorRepresentation, type Light } from 'three/webgpu'; export interface AmbientLightOptions { color?: ColorRepresentation; intensity?: number; } export interface DirectionalLightOptions { color?: ColorRepresentation; intensity?: number; position?: { x: number; y: number; z: number; }; castShadow?: boolean; shadowMapSize?: number; } export interface PointLightOptions { color?: ColorRepresentation; intensity?: number; distance?: number; decay?: number; position?: { x: number; y: number; z: number; }; castShadow?: boolean; } export interface SpotLightOptions { color?: ColorRepresentation; intensity?: number; distance?: number; angle?: number; penumbra?: number; decay?: number; position?: { x: number; y: number; z: number; }; target?: { x: number; y: number; z: number; }; castShadow?: boolean; } export interface HemisphereLightOptions { skyColor?: ColorRepresentation; groundColor?: ColorRepresentation; intensity?: number; } export type LightPreset = 'indoor' | 'outdoor' | 'studio' | 'warehouse'; /** * Manages lights in the scene with convenient creation and preset support. */ export declare class LightManager { private scene; private lights; private helpers; constructor(scene: Scene); addAmbient(id: string, options?: AmbientLightOptions): AmbientLight; addDirectional(id: string, options?: DirectionalLightOptions): DirectionalLight; addPoint(id: string, options?: PointLightOptions): PointLight; addSpot(id: string, options?: SpotLightOptions): SpotLight; addHemisphere(id: string, options?: HemisphereLightOptions): HemisphereLight; /** * Apply a lighting preset to the scene. */ applyPreset(preset: LightPreset): void; /** * Get a light by id. */ get(id: string): Light | undefined; /** * Remove a light by id. */ remove(id: string): void; /** * Remove all lights managed by this manager. */ removeAll(): void; /** * Show a visual helper for a light. */ showHelper(id: string): void; /** * Hide (remove) the helper for a light. */ hideHelper(id: string): void; /** * Show helpers for all lights. */ showAllHelpers(): void; /** * Hide all helpers. */ hideAllHelpers(): void; private _register; dispose(): void; }