interface Parameters {
    NumParticle: number;
    reSampNumParticle: number;
    initial_xy_uncertainty: number;
    initial_yaw_uncertainty: number;
    step_noise_sigma: number;
    yaw_noise_sigma: number;
    compass_update_interval: number;
    sigmaCompass: number;
    delta_yaw: number;
    sigmaBeacon: number;
    unaccess_weight: number;
}
declare class ParticleFilter {
    private NumParticle;
    private reSampNumParticle;
    private initial_xy_uncertainty;
    private initial_yaw_uncertainty;
    private step_noise_sigma;
    private yaw_noise_sigma;
    private compass_update_interval;
    private sigmaCompass;
    private delta_yaw;
    private sigmaBeacon;
    private unaccess_weight;
    private particle_PosInitFlag;
    private particle_yawInitFlag;
    private xEst;
    private particleX;
    private particleWeight;
    private last_compass_time;
    private last_yaw_compass;
    private compass_consecutive_offset_count;
    constructor(parameters: Parameters);
    /**
     * motionModelRotYaw 更新粒子的航向角。
     */
    motionModelRotYaw(delta_yaw: number): void;
    /**
     * motionModelStepLength 更新粒子的位移并处理不可达区域。
     * @param step_len
     * @param check_accessible
     * @returns
     */
    motionModelStepLength(step_len: number, check_accessible: (x: number, y: number) => boolean): void;
    /**
     * motionModelCompassYaw 根据罗盘的航向角更新粒子的权重。
     * @param compass_yaw
     * @param time
     */
    motionModelCompassYaw(compass_yaw: number, time: number): void;
    resampling(): void;
    update(observe_pos: {
        x: number;
        y: number;
    }, sigma_noise: number): void;
    updateCar(observe_pos: {
        x: number;
        y: number;
    }, sigma_noise: number): void;
    getPosInitFlag(): boolean;
    getYawInitFlag(): boolean;
    setPosInitFlag(flag: boolean): void;
    setYawInitFlag(flag: boolean): void;
    getResultX(): number;
    getResultY(): number;
    getResultYaw(): number;
    getEstConfidence(): number;
    getParticleNum(): number;
    getParticleX(): number[][];
    setLastCompassTime(time: number): void;
    getLastCompassTime(): number;
    initParticlesByPos(x: number, y: number, check_accessable: (x: number, y: number) => boolean): void;
    initParticlesByCompass(compass: number): void;
}
export { ParticleFilter };
