export type JavaScriptDataType = number | string | boolean | null | undefined | symbol | bigint | object;
export type ShaderTypes = "VERTEX_SHADER" | "FRAGMENT_SHADER";
export type Shader = {
    vertex: string;
    fragment: string;
};
export interface ShaderProgram {
    program: WebGLProgram;
    attr: {
        bufferType: GLenum;
        buffer: WebGLBuffer;
        drawType: GLenum;
        valueType: GLenum;
        size: GLint;
        attribute: number;
        data: Float32Array;
    }[];
    uniform: {
        [key: string]: WebGLUniformLocation | null;
    };
}
export type Color = [number, number, number, number?];
export interface GradientElement {
    color: Color;
    offset: number;
}
export interface MappedGradient {
    value: Float32Array;
    length: number;
    offset: number[];
}
export interface Point {
    x: number;
    y: number;
    value: number;
}
export type HeatmapConfig = {
    size?: number;
    max?: number;
    min?: number;
    intensity?: number;
    translate?: [number, number];
    zoom?: number;
    angle?: number;
    opacity?: number;
    gradient: GradientElement[];
    backgroundImage?: BackgroundImageConfig;
};
export type HearmapExData = {
    posVec: Float32Array;
    rVec: Float32Array;
    minMax: {
        min: number;
        max: number;
    };
};
export interface BackgroundImageConfig {
    url?: string;
    width?: number;
    height?: number;
    x: number;
    y: number;
    image?: HTMLImageElement;
}
export type Translate = [number, number];
