import type { Node } from "../core/Node.ts"; import type { Color } from "../math/Color.ts"; import { Vector3 } from "../math/Vector3.ts"; import { Light } from "./Light.ts"; /** * Per-vertex cone attenuation, CPU-computed. * When target is set, direction is computed as normalize(target world pos - light world pos). */ export declare class SpotLight extends Light { #private; type: string; lightType: number; /** Local-space cone direction. */ direction: Vector3; /** * Optional target node. When set, overrides direction. * Direction becomes normalize(target.matrixWorld position - this.matrixWorld position). */ target: Node | undefined; distance: number; /** Precomputed `Math.cos(angle)`. Updated whenever `angle` or `penumbra` change. */ _cosAngle: number; /** Precomputed `Math.cos(angle * (1 - penumbra))`. Updated whenever `angle` or `penumbra` change. */ _cosInnerAngle: number; decay: number; get angle(): number; set angle(value: number); get penumbra(): number; set penumbra(value: number); constructor(color?: Color | number | string, intensity?: number, distance?: number, angle?: number, penumbra?: number, decay?: number); copy(source: SpotLight, recursive?: boolean): this; } //# sourceMappingURL=SpotLight.d.ts.map