import { BufferDescriptor, BufferId, GpuBackend, GpuBackendInfo, GpuViewport, Texture1DDescriptor, TextureId } from '../../types'; import { DrawList } from '../../drawList'; import { FrameUniforms } from '../../frame'; export interface WebGLBackendOptions { antialias?: boolean; preserveDrawingBuffer?: boolean; powerPreference?: "default" | "low-power" | "high-performance"; } export declare class WebGLBackend implements GpuBackend { readonly info: GpuBackendInfo; private canvas; private opts; private gl; private viewport; private dpr; private programs; private buffers; private textures; constructor(canvas: HTMLCanvasElement, opts?: WebGLBackendOptions); static isSupported(): boolean; init(): Promise; setViewport(viewport: GpuViewport): void; createOrUpdateBuffer(id: BufferId, data: ArrayBufferView, desc?: Partial): void; deleteBuffer(id: BufferId): void; createOrUpdateTexture1D(id: TextureId, data: Uint8Array, desc?: Partial): void; deleteTexture(id: TextureId): void; render(drawList: DrawList, frame: FrameUniforms): void; renderWithBounds(drawList: DrawList, frame: FrameUniforms, bounds: { xMin: number; xMax: number; yMin: number; yMax: number; }): void; private renderDrawCall; private renderLine; private renderPoints; private renderBand; private renderTriangles; private renderHeatmap; destroy(): void; }