import type { ProgramId, RendererId, UniformName, Uniforms, VaoId, WebGLConstants, ResizeArgs, AttributeName, AttributeType, PrimitiveTypes, TextureName, WebGLEnables, TextureFilter, TextureWrap, TextureInternalFormat, TextureFormat, TextureType } from './types'; export declare class Core { #private; gl: WebGL2RenderingContext; canvasWidth: number; canvasHeight: number; pixelRatio: number; program: Record; vao: Record; uniLoc: Record>; attLoc: Record; stride: Record; texture: Record; currentProgram: ProgramId | null; currentVao: VaoId | null; currentRenderer: RendererId | null; uniMethod: { readonly bool: ["uniform1i", false, false]; readonly int: ["uniform1i", false, false]; readonly float: ["uniform1f", false, false]; readonly vec2: ["uniform2fv", false, true]; readonly vec3: ["uniform3fv", false, true]; readonly vec4: ["uniform4fv", false, true]; readonly mat2: ["uniformMatrix2fv", true, false]; readonly mat3: ["uniformMatrix3fv", true, false]; readonly mat4: ["uniformMatrix4fv", true, false]; readonly ivec2: ["uniform2iv", false, true]; readonly ivec3: ["uniform3iv", false, true]; readonly ivec4: ["uniform4iv", false, true]; }; resizeListener: null | (((resizeHandler: (arg: ResizeArgs) => void) => void)); constructor({ canvas, pixelRatio, resizeListener, options, extensions }: { canvas: HTMLCanvasElement | OffscreenCanvas; pixelRatio?: number; resizeListener?: (((resizeHandler: (arg: ResizeArgs) => void) => void)); options?: WebGLEnables[]; extensions?: string[]; }); enable(options?: WebGLConstants[]): void; disable(options?: WebGLConstants[]): void; setProgram(id: ProgramId, vText: string, fText: string, transformFeedback?: string[]): void; useProgram(id: ProgramId): void; setAttLoc(attributeTypes: Record): void; createVbo(data: Float32Array, usage?: number): WebGLBuffer | null; setVao({ id, index, attributes }: { id: VaoId; index?: number[]; attributes: Record; }): void; enableAttribute(att: AttributeName): void; getStrideSize(att: AttributeName): number; createInstancedVbo(id: VaoId, att: AttributeName, array: Float32Array): WebGLBuffer; updateVbo(vaoId: VaoId, att: AttributeName, array: Float32Array, vbo: WebGLBuffer): void; useVao(vaoId: VaoId): void; setUniLoc(id: ProgramId, uniforms: (UniformName | TextureName)[]): void; setUniforms(uniforms: Uniforms): void; render(primitive: PrimitiveTypes, drawElements: boolean): void; renderInstanced(primitive: PrimitiveTypes, drawElements: boolean, count: number): void; useRenderer({ id, pixelRatio, width, height, frameBuffer, drawBuffers }: { id: RendererId; pixelRatio: number; width: number; height: number; frameBuffer: WebGLFramebuffer | null; drawBuffers: number[]; }): void; createTexture(args: { filter?: TextureFilter; wrap?: TextureWrap; } & ({ image: TexImageSource; array?: undefined; width?: undefined; height?: undefined; format?: undefined; internalFormat?: undefined; type?: undefined; } | { image?: undefined; array: Float32Array; width: number; height: number; format?: undefined; internalFormat?: TextureInternalFormat; type?: undefined; } | { image?: undefined; array?: undefined; width: number; height: number; format: TextureFormat; internalFormat: TextureInternalFormat; type: TextureType; })): WebGLTexture; setTexture(key: TextureName, data: WebGLTexture | null): number; useTexture(key: TextureName): void; }