export type WebglType = "BYTE" | "UNSIGNED_BYTE" | "SHORT" | "UNSIGNED_SHORT" | "UNSIGNED_SHORT_5_6_5" | "UNSIGNED_SHORT_5_5_5_1" | "UNSIGNED_SHORT_4_4_4_4" | "INT" | "UNSIGNED_INT" | "UNSIGNED_INT_5_9_9_9_REV" | "UNSIGNED_INT_2_10_10_10_REV" | "UNSIGNED_INT_10F_11F_11F_REV" | "UNSIGNED_INT_24_8" | "HALF_FLOAT" | "FLOAT";
export type WebglWrap = "REPEAT" | "CLAMP_TO_EDGE" | "MIRRORED_REPEAT";
export type WebglMinFilter = "LINEAR" | "NEAREST" | "NEAREST_MIPMAP_NEAREST" | "LINEAR_MIPMAP_NEAREST" | "NEAREST_MIPMAP_LINEAR" | "LINEAR_MIPMAP_LINEAR";
export type WebglMagFilter = "LINEAR" | "NEAREST";
/** POINTS, LINE_STRIP, LINE_LOOP, LINES, TRIANGLE_FAN, TRIANGLE_STRIP or TRIANGLES. */
export type WebglDrawMode = "POINTS" | "LINE_STRIP" | "LINE_LOOP" | "LINES" | "TRIANGLE_STRIP" | "TRIANGLE_FAN" | "TRIANGLES";
export type WebglImage = ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap;
export declare function isWebglImage(data: unknown): data is WebglImage;
export type WebglDepthFunction = 
/** never pass */
"NEVER"
/** pass if the incoming value is less than the depth buffer value */
 | "LESS"
/** pass if the incoming value equals the depth buffer value */
 | "EQUAL"
/** pass if the incoming value is less than or equal to the depth buffer value */
 | "LEQUAL"
/** pass if the incoming value is greater than the depth buffer value */
 | "GREATER"
/** pass if the incoming value is not equal to the depth buffer value */
 | "NOTEQUAL"
/** pass if the incoming value is greater than or equal to the depth buffer value */
 | "GEQUAL"
/** always pass */
 | "ALWAYS";
export declare enum WebglEnumDepthFunction {
    /** never pass */
    NEVER,
    /** pass if the incoming value is less than the depth buffer value */
    LESS,
    /** pass if the incoming value equals the depth buffer value */
    EQUAL,
    /** pass if the incoming value is less than or equal to the depth buffer value */
    LEQUAL,
    /** pass if the incoming value is greater than the depth buffer value */
    GREATER,
    /** pass if the incoming value is not equal to the depth buffer value */
    NOTEQUAL,
    /** pass if the incoming value is greater than or equal to the depth buffer value */
    GEQUAL,
    /** always pass */
    ALWAYS
}
export type WebglBlendEquation = 
/**  source + destination (default value) */
"FUNC_ADD"
/**  source - destination */
 | "FUNC_SUBTRACT"
/**  destination - source */
 | "FUNC_REVERSE_SUBTRACT"
/**  Minimum of source and destination */
 | "MIN"
/**  Maximum of source and destination */
 | "MAX";
export declare enum WebglEnumBlendEquation {
    /**  source + destination (default value) */
    FUNC_ADD,
    /**  source - destination */
    FUNC_SUBTRACT,
    /**  destination - source */
    FUNC_REVERSE_SUBTRACT,
    /**  Minimum of source and destination */
    MIN,
    /**  Maximum of source and destination */
    MAX
}
export type WebglBlendFunction = 
/**
 * 0,0,0,0
 *
 * Multiplies all colors by 0.
 */
"ZERO"
/**
 * 1,1,1,1
 *
 * Multiplies all colors by 1.
 */
 | "ONE"
/**
 * RS, GS, BS, AS
 *
 * Multiplies all colors by the source colors.
 */
 | "SRC_COLOR"
/**
 * 1-RS, 1-GS, 1-BS, 1-AS
 *
 * Multiplies all colors by 1 minus each source color.
 */
 | "ONE_MINUS_SRC_COLOR"
/**
 * RD, GD, BD, AD
 *
 * Multiplies all colors by the destination color.
 */
 | "DST_COLOR"
/**
 * 1-RD, 1-GD, 1-BD, 1-AD
 *
 * Multiplies all colors by 1 minus each destination color.
 */
 | "ONE_MINUS_DST_COLOR"
/**
 * AS, AS, AS, AS
 *
 * Multiplies all colors by the source alpha value.
 */
 | "SRC_ALPHA"
/**
 * 1-AS, 1-AS, 1-AS, 1-AS
 *
 * Multiplies all colors by 1 minus the source alpha value.
 */
 | "ONE_MINUS_SRC_ALPHA"
/**
 * AD, AD, AD, AD
 *
 * Multiplies all colors by the destination alpha value.
 */
 | "DST_ALPHA"
/**
 * 1-AD, 1-AD, 1-AD, 1-AD
 *
 * Multiplies all colors by 1 minus the destination alpha value.
 */
 | "ONE_MINUS_DST_ALPHA"
/**
 * RC, GC, BC, AC
 *
 * Multiplies all colors by a constant color.
 */
 | "CONSTANT_COLOR"
/**
 * 1-RC, 1-GC, 1-BC, 1-AC
 *
 * Multiplies all colors by 1 minus a constant color.
 */
 | "ONE_MINUS_CONSTANT_COLOR"
/**
 * AC, AC, AC, AC
 *
 * Multiplies all colors by a constant alpha value.
 */
 | "CONSTANT_ALPHA"
/**
 * 1-AC, 1-AC, 1-AC, 1-AC
 *
 * Multiplies all colors by 1 minus a constant alpha value.
 */
 | "ONE_MINUS_CONSTANT_ALPHA"
/**
 * min(AS, 1 - AD), min(AS, 1 - AD), min(AS, 1 - AD), 1
 *
 * Multiplies the RGB colors by the smaller of either the source alpha value or the value of 1 minus the destination alpha value. The alpha value is multiplied by 1.
 */
 | "SRC_ALPHA_SATURATE";
export declare enum WebglEnumBlendFunction {
    /**
     * 0,0,0,0
     *
     * Multiplies all colors by 0.
     */
    ZERO,
    /**
     * 1,1,1,1
     *
     * Multiplies all colors by 1.
     */
    ONE,
    /**
     * RS, GS, BS, AS
     *
     * Multiplies all colors by the source colors.
     */
    SRC_COLOR,
    /**
     * 1-RS, 1-GS, 1-BS, 1-AS
     *
     * Multiplies all colors by 1 minus each source color.
     */
    ONE_MINUS_SRC_COLOR,
    /**
     * RD, GD, BD, AD
     *
     * Multiplies all colors by the destination color.
     */
    DST_COLOR,
    /**
     * 1-RD, 1-GD, 1-BD, 1-AD
     *
     * Multiplies all colors by 1 minus each destination color.
     */
    ONE_MINUS_DST_COLOR,
    /**
     * AS, AS, AS, AS
     *
     * Multiplies all colors by the source alpha value.
     */
    SRC_ALPHA,
    /**
     * 1-AS, 1-AS, 1-AS, 1-AS
     *
     * Multiplies all colors by 1 minus the source alpha value.
     */
    ONE_MINUS_SRC_ALPHA,
    /**
     * AD, AD, AD, AD
     *
     * Multiplies all colors by the destination alpha value.
     */
    DST_ALPHA,
    /**
     * 1-AD, 1-AD, 1-AD, 1-AD
     *
     * Multiplies all colors by 1 minus the destination alpha value.
     */
    ONE_MINUS_DST_ALPHA,
    /**
     * RC, GC, BC, AC
     *
     * Multiplies all colors by a constant color.
     */
    CONSTANT_COLOR,
    /**
     * 1-RC, 1-GC, 1-BC, 1-AC
     *
     * Multiplies all colors by 1 minus a constant color.
     */
    ONE_MINUS_CONSTANT_COLOR,
    /**
     * AC, AC, AC, AC
     *
     * Multiplies all colors by a constant alpha value.
     */
    CONSTANT_ALPHA,
    /**
     * 1-AC, 1-AC, 1-AC, 1-AC
     *
     * Multiplies all colors by 1 minus a constant alpha value.
     */
    ONE_MINUS_CONSTANT_ALPHA,
    /**
     * min(AS, 1 - AD), min(AS, 1 - AD), min(AS, 1 - AD), 1
     *
     * Multiplies the RGB colors by the smaller of either the source alpha value or the value of 1 minus the destination alpha value. The alpha value is multiplied by 1.
     */
    SRC_ALPHA_SATURATE
}
export declare enum WebglEnumStencilFunction {
    /** Never pass. */
    NEVER,
    /** Pass if (ref & mask) < (stencil & mask). */
    LESS,
    /** Pass if (ref & mask) = (stencil & mask). */
    EQUAL,
    /** Pass if (ref & mask) <= (stencil & mask). */
    LEQUAL,
    /** Pass if (ref & mask) > (stencil & mask). */
    GREATER,
    /** Pass if (ref & mask) !== (stencil & mask). */
    NOTEQUAL,
    /** Pass if (ref & mask) >= (stencil & mask). */
    GEQUAL,
    /** Always pass. */
    ALWAYS
}
export declare enum WebglEnumStencilOperation {
    /** Keeps the current value. */
    KEEP,
    /** Sets the stencil buffer value to 0. */
    ZERO,
    /** Sets the stencil buffer value to the reference value as specified by WebGLRenderingContext.stencilFunc(). */
    REPLACE,
    /** Increments the current stencil buffer value. Clamps to the maximum representable unsigned value. */
    INCR,
    /** Increments the current stencil buffer value. Wraps stencil buffer value to zero when incrementing the maximum representable unsigned value. */
    INCR_WRAP,
    /** Decrements the current stencil buffer value. Clamps to 0. */
    DECR,
    /** Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable unsigned value when decrementing a stencil buffer value of 0. */
    DECR_WRAP,
    /** Inverts the current stencil buffer value bitwise. */
    INVERT
}
/**
 * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D
 */
export type WebglTextureInternalFormatForImage = "RGB" | "RGBA" | "ALPHA" | "LUMINANCE" | "LUMINANCE_ALPHA";
/**
 * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D
 */
export type WebglTextureInternalFormatForData = "R8" | "R8_SNORM" | "RG8" | "RG8_SNORM" | "RGB8" | "RGB8_SNORM" | "RGB565" | "RGBA4" | "RGB5_A1" | "RGBA8" | "RGBA8_SNORM" | "RGB10_A2" | "RGB10_A2UI" | "SRGB8" | "SRGB8_ALPHA8" | "R16F" | "RG16F" | "RGB16F" | "RGBA16F" | "R32F" | "RG32F" | "RGB32F" | "RGBA32F" | "R11F_G11F_B10F" | "RGB9_E5" | "R8I" | "R8UI" | "R16I" | "R16UI" | "R32I" | "R32UI" | "RG8I" | "RG8UI" | "RG16I" | "RG16UI" | "RG32I" | "RG32UI" | "RGB8I" | "RGB8UI" | "RGB16I" | "RGB16UI" | "RGB32I" | "RGB32UI" | "RGBA8I" | "RGBA8UI" | "RGBA16I" | "RGBA16UI" | "RGBA32I" | "RGBA32UI";
/**
 * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D
 */
export type WebglPixelStoreFormat = "RGB" | "RGBA" | "R16F" | "RG16F" | "RGB16F" | "RGBA16F" | "LUMINANCE_ALPHA" | "ALPHA" | "LUMINANCE" | "DEPTH_COMPONENT" | "DEPTH_COMPONENT16" | "DEPTH_COMPONENT24" | "DEPTH_COMPONENT32F";
export type WebglPixelStorage2DArrayFormat = "R8" | "R16F" | "R32F" | "R8UI" | "RG8" | "RG16F" | "RG32F" | "RG8UI" | "RGB8" | "SRGB8" | "RGB565" | "R11F_G11F_B10F" | "RGB9_E5" | "RGB16F" | "RGB32F" | "RGB8UI" | "RGBA8" | "SRGB8_ALPHA8" | "RGB5_A1" | "RGBA4" | "RGBA16F" | "RGBA32F" | "RGBA8UI";
/**
 * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getTexParameter
 */
export type WebglTexParameter = "TEXTURE_MAG_FILTER" | "TEXTURE_MIN_FILTER" | "TEXTURE_WRAP_S" | "TEXTURE_WRAP_T" | "TEXTURE_BASE_LEVEL" | "TEXTURE_COMPARE_FUNC" | "TEXTURE_COMPARE_MODE" | "TEXTURE_IMMUTABLE_FORMAT" | "TEXTURE_IMMUTABLE_LEVELS" | "TEXTURE_MAX_LEVEL" | "TEXTURE_MAX_LOD" | "TEXTURE_MIN_LOD" | "TEXTURE_WRAP_R";
export type WebglUniformType = "sampler2D" | "sampler2DArray" | "sampler3D" | "samplerCube" | "bool" | "int" | "uint" | "float" | "double" | "vec2" | "bvec2" | "ivec2" | "uvec2" | "dvec2" | "vec3" | "bvec3" | "ivec3" | "uvec3" | "dvec3" | "vec4" | "bvec4" | "ivec4" | "uvec4" | "dvec4" | "mat2" | "mat3" | "mat4";
export type WebglAttributeType = "bool" | "int" | "uint" | "float" | "double" | "vec2" | "bvec2" | "ivec2" | "uvec2" | "dvec2" | "vec3" | "bvec3" | "ivec3" | "uvec3" | "dvec3" | "vec4" | "bvec4" | "ivec4" | "uvec4" | "dvec4" | "mat2" | "mat3" | "mat4";
export declare enum WebglEnumCullFace {
    FRONT,
    BACK,
    FRONT_AND_BACK
}
export declare enum WebglEnumTex2DInternalFormat {
    /** : Discards the red, green and blue components and reads the alpha component. */
    ALPHA,
    /** : Discards the alpha components and reads the red, green and blue components. */
    RGB,
    /** : Red, green, blue and alpha components are read from the color buffer. */
    RGBA,
    /** : Each color component is a luminance component, alpha is 1.0. */
    LUMINANCE,
    /** : Each component is a luminance/alpha component. */
    LUMINANCE_ALPHA
}
//# sourceMappingURL=webgl.d.ts.map