import type { WebGlContextWrapper } from '../../../lib/WebGlContextWrapper.js';
export interface CoreWebGlParameters {
    MAX_RENDERBUFFER_SIZE: number;
    MAX_TEXTURE_SIZE: number;
    MAX_VIEWPORT_DIMS: Int32Array;
    MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;
    MAX_TEXTURE_IMAGE_UNITS: number;
    MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;
    MAX_VERTEX_ATTRIBS: number;
    MAX_VARYING_VECTORS: number;
    MAX_VERTEX_UNIFORM_VECTORS: number;
    MAX_FRAGMENT_UNIFORM_VECTORS: number;
}
/**
 * Get device specific webgl parameters
 * @param glw
 */
export declare function getWebGlParameters(glw: WebGlContextWrapper): CoreWebGlParameters;
export interface CoreWebGlExtensions {
    ANGLE_instanced_arrays: ANGLE_instanced_arrays | null;
    WEBGL_compressed_texture_s3tc: WEBGL_compressed_texture_s3tc | null;
    WEBGL_compressed_texture_astc: WEBGL_compressed_texture_astc | null;
    WEBGL_compressed_texture_etc: WEBGL_compressed_texture_etc | null;
    WEBGL_compressed_texture_etc1: WEBGL_compressed_texture_etc1 | null;
    WEBGL_compressed_texture_pvrtc: any | null;
    WEBKIT_WEBGL_compressed_texture_pvrtc: any | null;
    WEBGL_compressed_texture_s3tc_srgb: WEBGL_compressed_texture_s3tc_srgb | null;
    OES_vertex_array_object: OES_vertex_array_object | null;
}
/**
 * Get device webgl extensions
 * @param glw
 */
export declare function getWebGlExtensions(glw: WebGlContextWrapper): CoreWebGlExtensions;
/**
 * Allocate big memory chunk that we
 * can re-use to draw quads
 *
 * @param glw
 * @param size
 */
export declare function createIndexBuffer(glw: WebGlContextWrapper, size: number): void;
/**
 * Checks if an object is of type HTMLImageElement.
 * This is used because we cant check for HTMLImageElement directly when the
 * renderer is running in a seperate web worker context.
 *
 * @param obj
 * @returns
 */
export declare function isHTMLImageElement(obj: unknown): obj is HTMLImageElement;
export interface WebGlColor {
    raw: number;
    normalized: [number, number, number, number];
}
