/**
 * render w/ regl
 * @see https://github.com/regl-project/regl/blob/gh-pages/API.md
 */
import { IAttribute, IAttributeInitializationOptions, IBuffer, IBufferInitializationOptions, IClearOptions, IElements, IElementsInitializationOptions, IExtensions, IFramebuffer, IFramebufferInitializationOptions, IModel, IModelInitializationOptions, IReadPixelsOptions, IRenderConfig, IRendererService, ITexture2D, ITexture2DInitializationOptions } from '@antv/l7-core';
import 'reflect-metadata';
import ReglFramebuffer from './ReglFramebuffer';
/**
 * regl renderer
 */
export default class ReglRendererService implements IRendererService {
    extensionObject: IExtensions;
    private gl;
    private $container;
    private canvas;
    private width;
    private height;
    private isDirty;
    init(canvas: HTMLCanvasElement, cfg: IRenderConfig): Promise<void>;
    getPointSizeRange(): any;
    testExtension(name: string): boolean;
    createModel: (options: IModelInitializationOptions) => IModel;
    createAttribute: (options: IAttributeInitializationOptions) => IAttribute;
    createBuffer: (options: IBufferInitializationOptions) => IBuffer;
    createElements: (options: IElementsInitializationOptions) => IElements;
    createTexture2D: (options: ITexture2DInitializationOptions) => ITexture2D;
    createFramebuffer: (options: IFramebufferInitializationOptions) => ReglFramebuffer;
    useFramebuffer: (framebuffer: IFramebuffer | null, drawCommands: () => void) => void;
    clear: (options: IClearOptions) => void;
    viewport: ({ x, y, width, height, }: {
        x: number;
        y: number;
        width: number;
        height: number;
    }) => void;
    readPixels: (options: IReadPixelsOptions) => Uint8Array;
    getViewportSize: () => {
        width: number;
        height: number;
    };
    getContainer: () => HTMLElement | null;
    getCanvas: () => HTMLCanvasElement;
    getGLContext: () => WebGLRenderingContext;
    setState(): void;
    setBaseState(): void;
    setCustomLayerDefaults(): void;
    setDirty(flag: boolean): void;
    getDirty(): boolean;
    destroy: () => void;
}
