import type { TSLFloatNode, TSLIntNode, TSLUintNode } from '../../types/tsl.js'; /** Encode a float expression into a signed fixed-point grid value. */ export interface MPMFixedPointEncodeFunction { (value: TSLFloatNode): TSLIntNode; } /** Decode a signed fixed-point grid value into a float expression. */ export interface MPMFixedPointDecodeFunction { (value: TSLIntNode): TSLFloatNode; } /** Fixed-point scale used for grid momentum atomics. */ export declare const MPM_MOMENTUM_FIXED_POINT: number; /** Fixed-point scale used for grid mass atomics. */ export declare const MPM_MASS_FIXED_POINT: number; /** * The audit threshold deliberately stays below signed-i32 overflow. At the * default scales this corresponds to roughly 1024 momentum units or 128 mass * units in one grid cell. Keeping the high bit clear also makes absolute-value * diagnostics well-defined for every encoded value. */ export declare const MPM_FIXED_POINT_AUDIT_LIMIT: number; export declare const MPM_MOMENTUM_OVERFLOW_BOUND: number; export declare const MPM_MASS_OVERFLOW_BOUND: number; export declare const encodeMPMMomentum: MPMFixedPointEncodeFunction; export declare const decodeMPMMomentum: MPMFixedPointDecodeFunction; export declare const encodeMPMMass: MPMFixedPointEncodeFunction; export declare const decodeMPMMass: MPMFixedPointDecodeFunction; /** Record the largest absolute encoded value in an atomic uint audit slot. */ export declare function auditMPMFixedPointValue(auditSlot: TSLUintNode, encodedValue: TSLIntNode): void;