import type { ComputeNode } from 'three/webgpu'; import type { TSLFloatNode, TSLStorageNode, TSLVec3Node } from '../../../types/tsl.js'; import { type MPMBoundaryOptions, type MPMGridForce, type MPMGridMirrorPassOptions, type MPMIntegrationProfile } from './MPMComputeContracts.js'; export interface MPMGridUpdatePassOptions extends MPMGridMirrorPassOptions { gridAtomic: TSLStorageNode<'struct'>; gridCellCount: number; dt: TSLFloatNode; time: TSLFloatNode; gravity: TSLVec3Node; maxVelocity: TSLFloatNode; boundary: MPMBoundaryOptions; integrationProfile?: MPMIntegrationProfile | undefined; gridForce?: MPMGridForce | null | undefined; workgroupSize: number; } export declare function computeGridUpdatePass({ gridAtomic, gridMirror, gridSize, gridCellCount, dt, time, gravity, maxVelocity, boundary, integrationProfile, gridForce, workgroupSize, packedGridMirror, }: MPMGridUpdatePassOptions): ComputeNode;