import type { ComputeNode } from 'three/webgpu'; import type { TSLFloatNode, TSLStorageNode } from '../../../types/tsl.cjs'; import { type SPHSpatialGrid } from './SPHGridContracts.cjs'; export interface SPHDensityDiffusionPassOptions { positions: TSLStorageNode<'vec3'>; velocities: TSLStorageNode<'vec3'>; densities: TSLStorageNode<'float'>; densityDeltas: TSLStorageNode<'float'>; particleCount: number; mass: TSLFloatNode; h2: TSLFloatNode; poly6: TSLFloatNode; coefficient: TSLFloatNode; grid: SPHSpatialGrid | null; is3D: boolean; } export interface SPHDensityDiffusionPasses { computeDelta: ComputeNode; applyDelta: ComputeNode; } /** Create an optional pair of SPH density-diffusion passes. */ export declare function createDensityDiffusionPasses({ positions, velocities, densities, densityDeltas, particleCount, mass, h2, poly6, coefficient, grid, is3D, }: SPHDensityDiffusionPassOptions): SPHDensityDiffusionPasses;