import { vec3 } from 'gl-matrix'; import Program from 'nanogl/program'; import { Texture } from 'nanogl/texture-base'; import { ShMode } from '../interfaces/ShMode'; import { IblType } from './IblModel'; import Light from './Light'; import LightType from './LightType'; export declare type IblBoxProjection = { center: vec3; min: vec3; max: vec3; }; export default abstract class IblBase extends Light { env: Texture; sh: ArrayLike; readonly _type = LightType.IBL; abstract readonly iblType: IblType; shMode: ShMode; enableRotation: boolean; enableBoxProjection: boolean; readonly boxProjectionSize: vec3; readonly boxProjectionOffset: vec3; constructor(env: Texture, sh: ArrayLike); setupProgram(prg: Program): void; static convert(sh: ArrayLike, expo?: number): Float32Array; }