import { AttributeName, AttributeType, Core, PrimitiveTypes, TextureName } from '.'; import { ProgramId, UniformName, UniformType } from './types'; import { PartialRecord } from './util'; export type AttributeTypes = Record; type UniformTypeWithArray = UniformType | `${UniformType}[${number}]`; export declare const testKeyword: (target: string, key: string) => boolean; export declare class Program { #private; core: Core; static idCounter: number; id: ProgramId; vert: string; frag: string; uniforms: Record; texture: K[]; primitive: PrimitiveTypes; constructor(core: Core, { id, attributeTypes, uniformTypes, frag, vert, texture, primitive }: { id?: ProgramId; attributeTypes: AttributeTypes; uniformTypes?: Record; frag: string; vert: string; texture?: Record; primitive?: PrimitiveTypes; }); setUniform(uniformValues: PartialRecord): void; setTexture(texture: PartialRecord): void; } export {};