import { BlendFunction, Effect, KawaseBlurPass, MipmapBlurPass, Resolution, ShaderPass } from 'postprocessing'; import { Uniform, WebGLRenderTarget, Texture, TextureDataType, WebGLRenderer } from 'three'; import { UniformMap } from '@takram/three-geospatial'; import { DownsampleThresholdMaterial } from './DownsampleThresholdMaterial'; import { LensFlareFeaturesMaterial } from './LensFlareFeaturesMaterial'; export interface LensFlareEffectOptions { blendFunction?: BlendFunction; resolutionScale?: number; width?: number; height?: number; resolutionX?: number; resolutionY?: number; intensity?: number; } export interface LensFlareEffectUniforms { bloomBuffer: Uniform; featuresBuffer: Uniform; intensity: Uniform; } export declare const lensFlareEffectOptionsDefaults: { blendFunction: BlendFunction; resolutionScale: number; width: number; height: number; intensity: number; }; export declare class LensFlareEffect extends Effect { uniforms: UniformMap; readonly resolution: Resolution; readonly renderTarget1: WebGLRenderTarget; readonly renderTarget2: WebGLRenderTarget; readonly thresholdMaterial: DownsampleThresholdMaterial; readonly thresholdPass: ShaderPass; readonly blurPass: MipmapBlurPass; readonly preBlurPass: KawaseBlurPass; readonly featuresMaterial: LensFlareFeaturesMaterial; readonly featuresPass: ShaderPass; constructor(options?: LensFlareEffectOptions); private readonly onResolutionChange; initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void; update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime?: number): void; setSize(baseWidth: number, baseHeight: number): void; get intensity(): number; set intensity(value: number); get thresholdLevel(): number; set thresholdLevel(value: number); get thresholdRange(): number; set thresholdRange(value: number); }