import { Renderer } from '../../types';
import { WebGLRendererBase } from './base/webgl-base-renderer';
/**
 * A WebGL-based renderer that creates a vertical color-drop animation.
 *
 * This renderer simulates falling color bands (like a waterfall or rain)
 * by animating a vertical gradient of hues within a specified hue range.
 *
 * The animation is driven by a shader program and controlled through
 * uniform parameters including `hueOffset`, `minHue`, and `maxHue`.
 */
export declare class DropRenderer extends WebGLRendererBase implements Renderer {
    private program;
    private posBuffer;
    private aPosition;
    private uMinHue;
    private uMaxHue;
    private uHueOffset;
    private uGridHeight;
    private minHue;
    private maxHue;
    private hueOffset;
    private speedPx;
    /**
     * Creates a new DropRenderer with the specified scroll speed.
     * @param speedPx - The vertical speed in pixels per update cycle.
     */
    constructor({ speedPx }?: {
        speedPx?: number;
    });
    /**
     * Resets the renderer's animation state to its initial values.
     */
    reset(): void;
    /**
     * Renders a new frame by updating hueOffset and redrawing the gradient.
     *
     * @param width - Width of the output frame
     * @param height - Height of the output frame
     */
    renderFrame(width: number, height: number): void;
    /**
     * Compiles a GLSL shader of the given type.
     *
     * @param type - gl.VERTEX_SHADER or gl.FRAGMENT_SHADER
     * @param source - GLSL source code
     * @returns The compiled shader object
     */
    private compileShader;
    /**
     * Links a vertex and fragment shader into a complete WebGL program.
     *
     * @param vertexShader - Compiled vertex shader
     * @param fragmentShader - Compiled fragment shader
     * @returns The linked WebGL program
     */
    private createProgram;
}
//# sourceMappingURL=drop-renderer.d.ts.map