export interface IWebGLRenderer {
    g: WebGLRenderingContext;
    c: HTMLCanvasElement;
    col: number;
    bkg: (r: number, g: number, b: number) => void;
    cls: () => void;
    img: (texture: WebGLTexture, x: number, y: number, w: number, h: number, r: number, tx: number, ty: number, sx: number, sy: number, u0: number, v0: number, u1: number, v1: number) => void;
    flush: () => void;
}
interface IMigalibTexture {
    width: number;
    height: number;
    scale: number;
}
export declare type MigalibTexture = WebGLTexture & IMigalibTexture;
declare class RendererFactorySingleton {
    private compileShader;
    private createShaderProgram;
    private createBuffer;
    createTexture(gl: WebGLRenderingContext, image: HTMLImageElement, width: number, height: number, scale?: number): MigalibTexture;
    createWebGLRenderer(canvas: HTMLCanvasElement, textureBleedingFix?: number): IWebGLRenderer;
}
export declare const RendererFactory: RendererFactorySingleton;
export {};
