import { Context } from './context'; import { Framebuffer } from './framebuffer'; import { GaussFilter } from './gaussfilter'; import { Initializable } from './initializable'; import { Renderbuffer } from './renderbuffer'; import { Texture2D } from './texture2d'; import { GLsizei2 } from './tuples'; export declare class ShadowPass extends Initializable { protected _context: Context; protected _shadowType: ShadowPass.ShadowMappingType; protected _shadowMapSize: GLsizei2; protected _blurredShadowMapSize: GLsizei2; protected _shadowMapFBO: Framebuffer; protected _shadowMapTexture: Texture2D; protected _shadowMapRenderbuffer: Renderbuffer; protected _gaussFilter: GaussFilter; protected _gaussFilterKernelSize: GLsizei; protected _intermediateBlurFBO: Framebuffer; protected _intermediateBlurTexture: Texture2D; protected _blurFBO: Framebuffer; protected _blurTexture: Texture2D; constructor(context: Context); get shadowMapFBO(): Framebuffer; get shadowMapTexture(): Texture2D; get hasBlur(): boolean; get blurSize(): GLsizei; set blurSize(blurSize: GLsizei); resize(size: GLsizei2, bind?: boolean, unbind?: boolean): void; resizeBlurTexture(size: GLsizei2, bind?: boolean, unbind?: boolean): void; initialize(shadowType: ShadowPass.ShadowMappingType, shadowMapSize: GLsizei2, blurredShadowMapSize?: GLsizei2): boolean; uninitialize(): void; frame(callback: () => void): void; } export declare namespace ShadowPass { enum ShadowMappingType { HardLinear = 0, SoftLinear = 1, HardExponential = 2, SoftExponential = 3 } }