import type { GlContextWrapper } from '../../platforms/GlContextWrapper.js'; import type { CoreShaderProgram } from '../CoreShaderProgram.js'; import type { WebGlCtxTexture } from './WebGlCtxTexture.js'; import type { WebGlRenderer, WebGlRenderOp } from './WebGlRenderer.js'; import type { WebGlShaderType } from './WebGlShaderNode.js'; import type { BufferCollection } from './internal/BufferCollection.js'; import { CoreNode } from '../../CoreNode.js'; export declare class WebGlShaderProgram implements CoreShaderProgram { protected program: WebGLProgram | null; /** * Vertex Array Object * * @remarks * Used by WebGL2 Only */ protected vao: WebGLVertexArrayObject | undefined; protected renderer: WebGlRenderer; protected glw: GlContextWrapper; protected attributeLocations: string[]; protected uniformLocations: Record | null; protected lifecycle: Pick; protected useSystemAlpha: boolean; protected useSystemDimensions: boolean; protected useTimeValue: boolean; isDestroyed: boolean; supportsIndexedTextures: boolean; constructor(renderer: WebGlRenderer, config: WebGlShaderType, resolvedProps: Record); disableAttribute(location: number): void; disableAttributes(): void; reuseRenderOp(node: CoreNode, currentRenderOp: WebGlRenderOp): boolean; bindRenderOp(renderOp: WebGlRenderOp): void; bindBufferCollection(buffer: BufferCollection): void; bindTextures(textures: WebGlCtxTexture[]): void; attach(): void; detach(): void; destroy(): void; }