import type { FluidDimension } from './kernels.cjs'; export type FluidReferenceVector = readonly [number, number, number?]; export type FluidReferenceMutableVector = [number, number, number]; export interface FluidReferenceDensityOptions { particleMass: number; smoothingRadius: number; dimension?: FluidDimension | undefined; } export interface FluidReferencePBFOptions extends FluidReferenceDensityOptions { restDensity: number; relaxation?: number | undefined; constraintMode?: 'compression-only' | 'symmetric' | undefined; } export interface FluidReferencePBFPositionOptions extends FluidReferencePBFOptions { artificialPressureStrength?: number | undefined; artificialPressureExponent?: number | undefined; artificialPressureDistance?: number | undefined; } export interface FluidReferencePBFVorticityOptions extends FluidReferenceDensityOptions { strength?: number | undefined; deltaTime?: number | undefined; } export interface FluidReferenceSPHPressureOptions { restDensity: number; equationOfState?: 'linear' | 'tait' | undefined; speedOfSound?: number | undefined; gamma?: number | undefined; pressureStiffness?: number | undefined; negativePressurePolicy?: 'clamp' | 'allow' | undefined; pressureFloor?: number | undefined; } export interface FluidReferenceSPHDiffusionOptions extends FluidReferenceDensityOptions { coefficient?: number | undefined; } export interface FluidReferenceSPHAccelerationOptions extends FluidReferenceDensityOptions { kinematicViscosity?: number | undefined; } export interface FluidStableTimeStepOptions { smoothingRadius?: number | undefined; speedOfSound?: number | undefined; maximumVelocity?: number | undefined; maximumAcceleration?: number | undefined; kinematicViscosity?: number | undefined; } export interface FluidReferenceBoxBoundaryOptions { dimensions?: FluidReferenceVector | undefined; particleRadius?: number | undefined; restitution?: number | undefined; friction?: number | undefined; } export interface FluidReferencePBFVorticityResult { vorticities: FluidReferenceMutableVector[]; velocityDeltas: FluidReferenceMutableVector[]; } export interface FluidReferenceSPHAccelerationResult { pressureAcceleration: FluidReferenceMutableVector[]; viscosityAcceleration: FluidReferenceMutableVector[]; } export interface FluidReferenceBoxBoundaryResult { position: FluidReferenceMutableVector; velocity: FluidReferenceMutableVector; } export declare function computeReferenceDensities(positions: readonly FluidReferenceVector[], { particleMass, smoothingRadius, dimension }: FluidReferenceDensityOptions): number[]; export declare function computeReferencePBFLambdas(positions: readonly FluidReferenceVector[], densities: readonly number[], options: FluidReferencePBFOptions): number[]; export declare function computeReferencePBFPositionDeltas(positions: readonly FluidReferenceVector[], lambdas: readonly number[], options: FluidReferencePBFPositionOptions): FluidReferenceMutableVector[]; export declare function computeReferencePBFVorticityConfinement(positions: readonly FluidReferenceVector[], velocities: readonly FluidReferenceVector[], densities: readonly number[], options: FluidReferencePBFVorticityOptions): FluidReferencePBFVorticityResult; export declare function computeReferenceSPHPressures(densities: readonly number[], options: FluidReferenceSPHPressureOptions): number[]; export declare function computeReferenceSPHDensityDiffusion(positions: readonly FluidReferenceVector[], densities: readonly number[], options: FluidReferenceSPHDiffusionOptions): number[]; export declare function computeReferenceSPHAccelerations(positions: readonly FluidReferenceVector[], velocities: readonly FluidReferenceVector[], densities: readonly number[], pressures: readonly number[], options: FluidReferenceSPHAccelerationOptions): FluidReferenceSPHAccelerationResult; export declare function estimateSPHStableTimeStep(options?: FluidStableTimeStepOptions): number; export declare function applyReferenceBoxBoundary(position: FluidReferenceVector, velocity: FluidReferenceVector, options?: FluidReferenceBoxBoundaryOptions): FluidReferenceBoxBoundaryResult;