import { Shader, ShaderAttrs } from "./shader";
import { Buffer } from "./buffer";
import { DrawModes } from "./primitives";
interface WebGLRenderingContext {
    [key: string]: any;
}
export interface WgglProgramShaders {
    [key: string]: [Shader, Shader];
}
export interface AttrPointer {
    location: WebGLUniformLocation | number;
    parameters: any;
    buffer?: WebGLBuffer;
}
export interface AttrPointers {
    [key: string]: AttrPointer;
}
export declare class WgglProgram {
    canvas: HTMLCanvasElement;
    bindPointers: AttrPointers;
    program: WebGLProgram;
    gl: WebGLRenderingContext;
    constructor(canvas: HTMLCanvasElement, bindPointers: AttrPointers, program: WebGLProgram);
    draw(values: ShaderAttrs, drawMode?: DrawModes, offset?: number, size?: number, keepCurrentViewport?: boolean): void;
    drawTo(buffer: Buffer, values: AttrPointers, drawMode?: DrawModes, offset?: number, size?: number): void;
}
export {};
