/**
 * Simple WebGL renderer for full-screen Gaussian blur.
 * Uses a two-pass separable Gaussian blur (horizontal then vertical).
 * Optimized for moderation use cases by blurring at reduced resolution (15% scale)
 * and upscaling back to full resolution for output.
 */
export declare class FullScreenBlurRenderer {
    readonly canvas: OffscreenCanvas;
    readonly gl: WebGL2RenderingContext;
    readonly blurProgramHandle: WebGLProgram;
    readonly blurLocations: {
        positionLocation: number;
        texCoordLocation: number;
        imageLocation: WebGLUniformLocation | null;
        texelSizeLocation: WebGLUniformLocation | null;
        directionLocation: WebGLUniformLocation | null;
        weightsLocation: WebGLUniformLocation | null;
    };
    readonly passthroughProgramHandle: WebGLProgram;
    readonly passthroughLocations: {
        positionLocation: number;
        texCoordLocation: number;
        imageLocation: WebGLUniformLocation | null;
    };
    readonly positionBuffer: WebGLBuffer | null;
    readonly texCoordBuffer: WebGLBuffer | null;
    readonly pingTexture: WebGLTexture | null;
    readonly pongTexture: WebGLTexture | null;
    readonly pingFbo: WebGLFramebuffer | null;
    readonly pongFbo: WebGLFramebuffer | null;
    private inputTexture;
    private isRunning;
    private targetWidth;
    private targetHeight;
    private weightCache;
    constructor(canvas: OffscreenCanvas);
    private createAndLinkProgram;
    private createShader;
    private getGaussianWeights;
    render(frame: VideoFrame, radius: number): void;
    close(): void;
}
