import type { Material } from "@babylonjs/core/Materials/material.js"; import type { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js"; import type { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture.js"; import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js"; import type { Scene } from "@babylonjs/core/scene.js"; import "@babylonjs/core/Shaders/ShadersInclude/packingFunctions.js"; import type { SurfaceEffectPlugin } from "./surface-effect-plugin.js"; export interface CutoutPassTarget { readonly kind: "depth" | "glow"; readonly texture: RenderTargetTexture; readonly packed?: boolean; setMaterial(mesh: AbstractMesh, material?: Material): void; } /** Owns only per-material adapters; shadow/depth/glow targets remain borrowed. */ export declare class CutoutPassController { #private; constructor(scene: Scene, surface: PBRMaterial, plugin: SurfaceEffectPlugin, meshes: readonly AbstractMesh[], targets: () => readonly CutoutPassTarget[]); prepare(signal: AbortSignal): Promise; activate(): void; refresh(): void; dispose(): void; } //# sourceMappingURL=cutout-pass-controller.d.ts.map