import { WebGLRenderer } from "../WebGLRenderer.js";
import { WebGLUniforms } from "./WebGLUniforms.js";

export class WebGLProgram {
    constructor(renderer: WebGLRenderer, cacheKey: string, parameters: object);

    name: string;
    id: number;
    cacheKey: string; // unique identifier for this program, used for looking up compiled programs from cache.

    /**
     * @default 1
     */
    usedTimes: number;
    program: unknown; // TODO This should be the WebGLProgram in the DOM types
    vertexShader: WebGLShader;
    fragmentShader: WebGLShader;

    getUniforms(): WebGLUniforms;
    getAttributes(): unknown;
    destroy(): void;
}
