import { ParticleConfig } from "../../effect";
import { Particle } from "../../particle";
import { Renderer } from "../renderer";
export declare function createShader(gl: WebGLRenderingContext, type: number, source: string): WebGLShader;
export declare function createProgram(gl: WebGLRenderingContext, vs: WebGLShader, fs: WebGLShader): WebGLProgram;
interface Buffer {
    buffer: WebGLBuffer;
    location: number;
    readSize: number;
}
/**
 *
 * @param gl
 * @param program
 * @param points
 * @returns
 */
export declare function setAttributeBuffer(gl: WebGLRenderingContext, buffer: Buffer, points: Float32Array): void;
export declare class WebGLRenderer extends Renderer {
    protected root: HTMLCanvasElement;
    protected config: ParticleConfig;
    private gl;
    private program;
    private pointsBuffer;
    private colorBuffer;
    constructor(root: HTMLCanvasElement, config: ParticleConfig);
    resize(): void;
    render(particles: Particle[], config: ParticleConfig): void;
}
export {};
