import type { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer"; import type { Renderer, WebGLRenderer } from "three/src/Three"; /** * webgl global object. * * you can use Unsafe API by casting this to `WebGLGlobalObject` */ export interface IReadonlyWebGLGlobalObject { get renderer(): Omit; get webglRenderer(): WebGLRenderer | null; get effectComposer(): EffectComposer | null; } /** * webgl global object. */ export declare class WebGLGlobalObject implements IReadonlyWebGLGlobalObject { private readonly _renderer; private readonly _webglRenderer; private _effectComposer; constructor(renderer: Omit, webglRenderer: WebGLRenderer | null); /** * get abstract renderer. */ get renderer(): Omit; /** * get webgl renderer. */ get webglRenderer(): WebGLRenderer | null; /** * get effect composer. * * if you not use post process, this value is null. */ get effectComposer(): EffectComposer | null; /** * set effect composer. * * this is unsafe API that use only for post process volume. */ set effectComposer(effectComposer: EffectComposer | null); }