///
import EventEmitter from 'events';
import { Geofence, Position, FormatPosition } from './types.cjs';
/**
* Geofencing class
* @constructor (initPosition: Position)
*/
export declare class Geofencing extends EventEmitter {
private geofences;
private _position;
private posInGeofences;
get position(): FormatPosition;
constructor(initPos?: Position);
/**
* Add a geofence
* @param id Geofence ID
* @param pos Geofence position
* @param radius Geofence radius
* @param metadata Geofence metadata
* @returns void
*/
addGeofence(id: string, pos: Position, radius: number, metadata?: Record): void;
/**
* Get all geofences
* @returns Saved geofences
*/
getGeofences(): Geofence[];
/**
* Remove a geofence
* @param id Geofence ID
* @returns void
*/
removeGeofence(id: string): void;
/**
* Clear all geofences
* @returns void
*/
clearGeofences(): void;
/**
* Update location and emit enter/exit events
* @param pos Position to update
* @returns void
*/
updateLocation(pos: Position): void;
/**
* Check if a position is inside a geofence
* @param pos Position to check
* @param geofenceID Geofence ID to check
* @returns Whether the position is inside the geofence or not
*/
isInsideGeofence(pos: Position, geofenceID: string): boolean;
}