import { ParticleFilter } from "./particle";
import { ImuPosition } from "./imu-position";
import { SensorData } from "./sensor";
export interface PdrOptions {
    using_gps: boolean;
    gps_max_horizontalAccuracy: number;
}
export declare class PositioningSystem {
    particleFilter: ParticleFilter;
    pdr: ImuPosition;
    sigmaBeacon: number;
    gps_horizontalAccuracy: number;
    using_gps: boolean;
    last_beacon_time: number | null;
    last_pos_time?: number;
    position_count: number;
    gps_max_horizontalAccuracy: number;
    MaxEstimateErr: number;
    GpsMaxEstimateErr: number;
    outTrustRegionNum: number;
    TrustNum: number;
    cacheSensorData: SensorData[];
    startTime: null | number;
    constructor(options: Partial<PdrOptions>);
    /**
     * 基于 PDR、iBeacon、罗盘和语义地图的粒子滤波器。
     *
     * 输入：
     * sensorsData -- 来自手机的传感器读数，
     *                包含加速度计、陀螺仪、罗盘、iBeacon。
     * grid_map -- 离线生成的 iBeacon 网格地图。
     *
     * 输出：
     * pxMesh, pyMesh -- 网格坐标中的位置。
     */
    pfFusionPDRiBeacon(sensorData: SensorData): [boolean, number, number];
    /**
     * 根据服务端返回的beacon定位结果，重新设置pdr
     * @param pos { x: number, y: number } 定位结果
     * @param time { number } 开始定位的时间戳
     */
    setBeaconPosition(pos: {
        x: number;
        y: number;
    }, time: number): number[];
    /**
     * 根据gps数据获取定位
     * @param data
     * @returns
     */
    getGpsPosition(data: [number, number, number]): null | {
        x: number;
        y: number;
    };
    private resetParticleFilterDist;
}
