import { Path, Paths } from '../types/path'; /** * Service for resampling GPS tracks to ensure one point per second. * * This class processes GPS tracks to create uniform temporal resolution by: * - Interpolating points between existing track points * - Ensuring exactly one point exists at each epoch second * - Preserving all point properties during interpolation * * Algorithm: * 1. For each segment between consecutive points: * - If points span multiple seconds, interpolate points at each epoch second * - Use linear interpolation weighted by time distance * 2. Special handling for first/last points if not on epoch boundary * * Based on GPXPerSecond.java from gpx2web project. * * Use cases: * - Standardizing GPS tracks from different devices with varying sampling rates * - Preparing data for time-series analysis requiring uniform intervals * - Synchronizing multiple GPS tracks to common time resolution * * @example * ```typescript * const perSecond = new GPXPerSecond(); * const paths: Paths = parser.parse(gpxContent); * paths.tracks.forEach(track => { * perSecond.computeOnePointPerSecond(track); * }); * ``` */ export declare class PointPerSecond { private constructor(); /** * Resamples a single path to ensure one point per second. * * Creates a new path with interpolated points at exact epoch second boundaries. * * @param path The path to resample * @returns A new path with one point per second */ static computeOnePointPerSecond(path: Path): Path; /** * Resamples all tracks in a Paths object (modified in-place). * * @param paths The paths object containing tracks to resample */ static computeOnePointPerSecondForPaths(paths: Paths): void; /** * Creates a new path with resampled points. */ private static createResampledPath; } //# sourceMappingURL=PointPerSecond.d.ts.map