export declare class ImuPosition {
    private fre;
    private accH_fifo;
    private accH_time_fifo;
    private accH_fifo_len;
    private step_count;
    private state_count;
    private last_valley_time;
    private last_peak_time;
    private last_step_time;
    private min_step_time;
    private max_step_time;
    private min_peak;
    private max_valley;
    private peak_num;
    private valley_num;
    private fft_min_amp;
    private fft_min_fre;
    private fft_max_fre;
    private last_fft_amp;
    private abnor_start_time;
    private abnor_fft_detected;
    private abnor_time_threshold;
    private abnor_peak_time;
    private abnor_peak_accH;
    private const_step_length;
    private last_rot;
    private delta_rot;
    private last_yaw;
    private delta_yaw;
    private delta_rot_sum_fifo;
    private delta_rot_sum_time_fifo;
    private delta_yaw_accum;
    private delta_yaw_accum_timestamp;
    private delta_yaw_time_threshold;
    private last_px;
    private last_py;
    private delta_px;
    private delta_py;
    private is_moving;
    private currentMotionState;
    private previousMotionState;
    private walkingThreshold;
    private stationaryThreshold;
    private phoneUseThreshold;
    private rotationThreshold;
    private walkingCount;
    private stationaryCount;
    private phoneUseCount;
    private stateCounter;
    private stateChangeThreshold;
    private static_window_size;
    private acc_variance_buffer;
    private rot_variance_buffer;
    private acc_buffer;
    init(): void;
    /**
     * Curr PDR object is reset.
     */
    private reset;
    /**
     * Set PDR init pose.
     */
    setInitPose(pose?: [number, number]): void;
    setInitYaw(yaw?: number): void;
    /**
     * Get PDR pos
     * @param timestamp --- time, s
     * @param acc       --- accelerometer output, m/s^2
     * @param rot       --- [yaw, pitch, roll], deg
     * @returns px --- pos x, m
     * @returns py --- pos y, m
     */
    getPos(timestamp: number, acc: number[], rot: number[]): [number, number];
    getDeltaPose(): [number, number];
    /**
     * 获取当前运动状态
     * @returns 当前运动状态
     */
    getMotionState(): string;
    /**
     * Step detection based on accelerometer magnitude.
     * @param timestamp -- measure time, s.
     * @param accH      -- accelerometer magnitude, m/s^2.
     * @returns True: detected, False: not detected.
     */
    getStepLength(timestamp: number, acc: number[]): number;
    /**
     * Update IMU frequency on time.
     */
    private imuFreUpdate;
    /**
     * Step re-detection when state switches between walk and stand
     * @returns True: normal, False: abnormal
     */
    private recheckState;
    /**
     * Step detection based on accelerometer magnitude using Peak-Valley detection.
     * @param timestamp -- measure time, s.
     * @param accH      -- accelerometer magnitude, m/s^2.
     * @returns bool -- True: detected, False: not detected.
     */
    private PVStepDetec;
    /**
     * Step detection based on accelerometer magnitude using FFT.
     * @param timestamp -- measure time, s.
     * @param accH      -- accelerometer magnitude, m/s^2.
     * @returns bool -- True: detected, False: not detected.
     */
    private FFTStepDetec;
    /**
     * 判断用户是否在移动状态
     * @param acc 加速度数据
     * @param rot 旋转数据
     * @returns 是否在移动状态
     */
    private isMoving;
    /**
     * 计算数组的平均值
     * @param arr 数据数组
     * @returns 平均值
     */
    private calculateMean;
    /**
     * 计算数组的标准差
     * @param arr 数据数组
     * @returns 标准差
     */
    private calculateStdDeviation;
    /**
     * 获取当前运动状态的统计数据
     * @returns 统计数据对象
     */
    getMotionStatistics(): Record<string, any>;
    /**
     * Get delta yaw from rotation
     * @param timestamp: s
     * @param rot: [yaw pitch roll] deg
     * @returns delta_yaw: deg
     */
    getDeltaYawFromRot(timestamp: number, rot: number[]): number | null;
    private limitYaw;
}
