import type { ComputeNode } from 'three/webgpu'; import type { TSLFloatInput, TSLStorageNode } from '../../../types/tsl.cjs'; import { type InteractionQueryWorld } from './InteractionGridQueries.cjs'; import type { ParticleColliderTransforms } from './createParticleColliderConstraintPass.cjs'; export interface ParticleColliderPositionDeltaBuffers { positions: TSLStorageNode<'vec3'>; lambdas?: TSLStorageNode<'float'> | undefined; positionDeltas?: TSLStorageNode<'vec3'> | undefined; readonly [name: string]: unknown; } export interface ParticleColliderPositionDeltaOptions { layer?: number | undefined; mask?: number | undefined; particleRadius?: number | undefined; smoothingRadius?: TSLFloatInput | undefined; h2?: TSLFloatInput | undefined; mass?: TSLFloatInput | undefined; restDensity?: TSLFloatInput | undefined; spiky?: TSLFloatInput | undefined; particleSpacing?: TSLFloatInput | undefined; poly6?: TSLFloatInput | undefined; deltaQ?: TSLFloatInput | undefined; sCorrK?: TSLFloatInput | undefined; sCorrN?: TSLFloatInput | undefined; is3D?: boolean | undefined; queryMode?: 'grid' | 'scan' | undefined; readonly [name: string]: unknown; } declare function createParticleColliderPositionDeltaPass(world: InteractionQueryWorld, buffers: ParticleColliderPositionDeltaBuffers, particleCount: number, options?: ParticleColliderPositionDeltaOptions, transforms?: ParticleColliderTransforms): ComputeNode; export { createParticleColliderPositionDeltaPass };