import { MaterialPluginBase } from "@babylonjs/core/Materials/materialPluginBase.js"; import type { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js"; import type { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js"; import type { UniformBuffer } from "@babylonjs/core/Materials/uniformBuffer.js"; import { type MaterialSurfaceEffects } from "@skenora/contracts"; /** One instance per owned material; no global Babylon plugin registration. */ export declare class SurfaceEffectPlugin extends MaterialPluginBase { #private; constructor(material: PBRMaterial, effects: MaterialSurfaceEffects); update(effects: MaterialSurfaceEffects): void; capture(): MaterialSurfaceEffects; prepareDefines(defines: MaterialDefines): void; getClassName(): string; getUniforms(): { ubo: { name: string; size: number; type: string; }[]; fragment: string; }; hardBindForSubMesh(buffer: UniformBuffer): void; /** The same live values are bound by main, shadow, depth and glow passes. */ bindParameters(buffer: Pick): void; getCustomCode(shaderType: string): Record | null; dispose(): void; } //# sourceMappingURL=surface-effect-plugin.d.ts.map