import type { GlRenderingContext } from '../types'; import type { WebGLRenderer } from '../WebGLRenderer'; import { GlSystem } from '../system'; import { GlBlendMode } from './GlBlendMode'; export interface GlState { blend: boolean; offsets: boolean; culling: boolean; depthTest: boolean; clockwiseFrontFace: boolean; depthMask: boolean; } export declare class GlState { static readonly _properties: string[]; static _init(): void; static for2D(): GlState; protected _blendMode: GlBlendMode; protected _polygonOffset: number; bitmap: number; get blendMode(): GlBlendMode; set blendMode(value: GlBlendMode); get polygonOffset(): number; set polygonOffset(value: number); constructor(options?: Partial); } export declare class GlStateSystem extends GlSystem { install(renderer: WebGLRenderer): void; protected _blendEq: boolean; protected _setters: any[]; boundStateBitmap: number; boundBlendMode?: string; blendModes: Record; defaultState: GlState; protected _updateContext(gl: GlRenderingContext): void; toggle(boundPoint: number, enable: boolean): void; setBlend(value: boolean): void; setOffsets(value: boolean): void; setCulling(value: boolean): void; setDepthTest(value: boolean): void; setDepthMask(value: boolean): void; setClockwiseFrontFace(value: boolean): void; setBlendMode(value: GlBlendMode): void; setPolygonOffset(value: number, scale: number): void; bind(state: GlState): void; reset(): void; }