import { Device } from "../adapter/device.js"; import { Shader, type ShaderProps } from "../adapter/resources/shader.js"; /** Manages a cached pool of Shaders for reuse. */ export declare class ShaderFactory { static readonly defaultProps: Required; /** Returns the default ShaderFactory for the given {@link Device}, creating one if necessary. */ static getDefaultShaderFactory(device: Device): ShaderFactory; readonly device: Device; private readonly _cache; get [Symbol.toStringTag](): string; toString(): string; /** @internal */ constructor(device: Device); /** Requests a {@link Shader} from the cache, creating a new Shader only if necessary. */ createShader(props: ShaderProps): Shader; /** Releases a previously-requested {@link Shader}, destroying it if no users remain. */ release(shader: Shader): void; protected _hashShader(value: Shader | ShaderProps): string; } //# sourceMappingURL=shader-factory.d.ts.map