import { PipelineConfig } from '../config-types'; import { FrameData, LadonOutput } from '../generator'; type TextureInitializer = () => void; export declare abstract class WebGLRenderer { output_canvas: HTMLCanvasElement; readonly config: PipelineConfig; protected intermediate_canvas?: HTMLCanvasElement; protected output_canvas_2d?: CanvasRenderingContext2D; protected gl: WebGL2RenderingContext; protected image_texture: WebGLTexture; protected mask_texture: WebGLTexture; protected verts: Float32Array; protected vertex_shader_src: string; protected fragment_shader_header: string; protected shared_shader_functions: string; constructor(output_canvas: HTMLCanvasElement, config: PipelineConfig); protected initTexturesAndBuffers(): void; protected createTexture(internalFormat: number, width: number, height: number, initializeTexture?: TextureInitializer): WebGLTexture; protected getUVCalculation(): "vec2 st = vec2(1.0 - gl_FragCoord.x / u_resolution.x, 1.0 - gl_FragCoord.y / u_resolution.y);" | "vec2 st = vec2(gl_FragCoord.x / u_resolution.x, 1.0 - gl_FragCoord.y / u_resolution.y);"; protected setSharedUniforms(program: WebGLProgram): void; protected uploadVideoStream(input: FrameData): void; protected uploadMask(mask?: LadonOutput): void; protected postDraw(): void; } export {};