import type { Surface } from '../types.js'; export declare function totalMass(profile: Float32Array): number; /** Interpolate bin centres so the collision edge matches the rendered silhouette. */ export declare function depthAt(surface: Pick & { radius?: number; }, x: number): number; /** Return accepted mass; callers must keep or shed any surplus instead of losing it. */ export declare function deposit(profile: Float32Array, binSize: number, x: number, mass: number, maxDepth?: number, packing?: Float32Array): number; /** Remove mass within an edge-local brush radius, nearest bins first. */ export declare function remove(profile: Float32Array, binSize: number, x: number, radius: number, mass?: number): number; /** Pairwise diffusion conserves area and cannot overshoot even for isolated peaks. */ export declare function smooth(profile: Float32Array, strength: number, iterations?: number): void; /** Remap bins on responsive width changes without changing the deposit's mass. */ export declare function resizeProfile(profile: Float32Array, length: number): Float32Array; /** Explicit melting is an intentional mass sink, reported by its return value. */ export declare function melt(profile: Float32Array, binSize: number, rate: number, dt: number): number; /** Actual rounded card shoulder below the horizontal top-edge datum. */ export declare function supportYAt(surface: Pick, x: number): number; export declare function snowYAt(surface: Pick, x: number): number; //# sourceMappingURL=profiles.d.ts.map