import { ExternalTexture } from "../../Materials/Textures/externalTexture"; import type { InternalTexture } from "../../Materials/Textures/internalTexture"; import type { TextureSampler } from "../../Materials/Textures/textureSampler"; import type { Nullable } from "../../types"; import type { IMaterialContext } from "../IMaterialContext"; /** @internal */ interface IWebGPUMaterialContextSamplerCache { sampler: Nullable; hashCode: number; } /** @internal */ interface IWebGPUMaterialContextTextureCache { texture: Nullable; isFloatOrDepthTexture: boolean; isExternalTexture: boolean; } /** @internal */ export declare class WebGPUMaterialContext implements IMaterialContext { private static _Counter; uniqueId: number; updateId: number; isDirty: boolean; samplers: { [name: string]: Nullable; }; textures: { [name: string]: Nullable; }; textureState: number; get forceBindGroupCreation(): boolean; get hasFloatOrDepthTextures(): boolean; protected _numFloatOrDepthTextures: number; protected _numExternalTextures: number; constructor(); reset(): void; setSampler(name: string, sampler: Nullable): void; setTexture(name: string, texture: Nullable): void; } export {};