import type { FluidDimension } from './kernels.js'; export type FluidCalibrationMode = 'manual' | 'particle-volume' | 'self-kernel' | 'discrete-lattice'; export interface FluidCalibrationOptions { mode?: FluidCalibrationMode | undefined; dimension?: FluidDimension | undefined; restDensity?: number | undefined; spacing?: number | undefined; smoothingRadius?: number | undefined; particleRadius?: number | undefined; particleMass?: number | undefined; mass?: number | undefined; } export interface FluidReferenceLatticeOptions { spacing: number; smoothingRadius: number; dimension?: FluidDimension | undefined; } export interface FluidReferenceLattice { kernelWeightSum: number; neighborCount: number; } export interface FluidCalibrationResult { readonly mode: FluidCalibrationMode; readonly dimension: 2 | 3; readonly spacing: number; readonly smoothingRadius: number; readonly smoothingRadiusRatio: number; readonly particleRadius: number; readonly particleMass: number; readonly restDensity: number; readonly expectedNeighborCount: number; readonly referenceDensity: number; readonly referenceDensityError: number; readonly neighborQuality: 'low' | 'useful'; } /** * Deterministically calibrates equal-mass particle-fluid layouts. */ export declare class FluidCalibration { static calibrate(options?: FluidCalibrationOptions): Readonly; static referenceLattice({ spacing, smoothingRadius, dimension, }: FluidReferenceLatticeOptions): FluidReferenceLattice; } export declare function calibrateFluid(options?: FluidCalibrationOptions): Readonly;