import { TWithTags } from '../../Mixins'; import { TObject3DParams, TObject3DPropConfig } from '../../ThreeLib'; import { Color, Vector2Like } from 'three'; import { TAmbientLightParams } from './TAmbientLightParams'; import { TDirectionalLightParams } from './TDirectionalLightParams'; import { THemisphereLightParams } from './THemisphereLightParams'; import { TLightShadowParams } from './TLightShadowParams'; import { TPointLightParams } from './TPointLightParams'; import { TRectAreaLightParams } from './TRectAreaLightParams'; import { TShadowCameraConfig } from './TShadowCameraConfig'; import { TSpotLightParams } from './TSpotLightParams'; export type TAbstractLightConfig> = Omit & Readonly<{ color: string; shadow?: TLightShadowConfig; }> & TObject3DPropConfig & TWithTags; export type TDirectionalLightConfig = Omit & Readonly<{ color: string; }> & TObject3DPropConfig; export type TAmbientLightConfig = TAbstractLightConfig; export type THemisphereLightConfig = Omit, 'groundColor'> & Readonly<{ groundColor: string; }>; export type TPointLightConfig = TAbstractLightConfig; export type TRectAreaLightConfig = TAbstractLightConfig; export type TSpotLightConfig = TAbstractLightConfig; export type TAnyLightConfig = TAmbientLightConfig | THemisphereLightConfig | TDirectionalLightConfig | TPointLightConfig | TRectAreaLightConfig | TSpotLightConfig; export type TLightShadowConfig = Omit & Readonly<{ mapSize: Vector2Like; camera: TShadowCameraConfig; }>;