{
  "version": "3.0.0",
  "description": "AI agent test patterns for react-native-geolocation-pro SDK",
  "patterns": [
    { "id": "lifecycle.ready", "api": "Geolocation.ready", "native": ["ready"], "config": { "url": "https://example.com/loc", "autoSync": true } },
    { "id": "lifecycle.start-stop", "api": "Geolocation.start/stop", "native": ["start", "stop", "getState"] },
    { "id": "lifecycle.reset", "api": "Geolocation.reset", "native": ["reset"] },
    { "id": "gps.watch", "api": "Geolocation.watchPosition", "native": ["watchPosition", "clearWatch", "stopLocationObserving"] },
    { "id": "gps.current", "api": "Geolocation.getCurrentPosition", "native": ["getCurrentPosition"] },
    { "id": "gps.changePace", "api": "Geolocation.changePace", "native": ["changePace", "setActivityPaused"] },
    { "id": "http.configure", "api": "HttpSync.configure", "native": ["configureHttp"] },
    { "id": "http.autoSync", "api": "persist triggers httpSyncAsync", "native": ["httpAutoSync on insert"] },
    { "id": "http.sync", "api": "Geolocation.uploadToServer", "native": ["sync", "httpSync"] },
    { "id": "http.onHttp", "api": "Geolocation.onHttp", "events": ["httpResponse"] },
    { "id": "geofence.circular", "api": "geofencing.addGeofence", "native": ["addGeofence"], "data": { "latitude": 37.33, "longitude": -122.03, "radius": 200 } },
    { "id": "geofence.polygon", "api": "geofencing.addGeofence", "native": ["addGeofence"], "data": { "vertices": [{ "latitude": 37.33, "longitude": -122.03 }, { "latitude": 37.34, "longitude": -122.03 }, { "latitude": 37.34, "longitude": -122.02 }] } },
    { "id": "geofence.events", "api": "geofencing.onGeofence", "events": ["geofence", "geofencesChange"] },
    { "id": "geofence.startGeofences", "api": "Geolocation.startGeofences", "native": ["startGeofences"] },
    { "id": "schedule.configure", "api": "Geolocation.ready schedule", "config": { "schedule": ["1-7 09:00-17:00"] } },
    { "id": "schedule.start", "api": "Geolocation.startSchedule", "native": ["startSchedule", "stopSchedule"], "events": ["schedule"] },
    { "id": "logger.log", "api": "Logger.info", "native": ["log", "getLog", "destroyLog"] },
    { "id": "logger.upload", "api": "Logger.uploadLog", "native": ["uploadLog"] },
    { "id": "logger.email", "api": "Logger.emailLog", "native": ["Share API"] },
    { "id": "persist.queue", "api": "getPendingForJs", "native": ["getPendingForJs", "markDelivered", "purgeDelivered", "getQueueSize"] },
    { "id": "persist.crud", "api": "getLocations/destroyLocation/insertLocation", "native": ["getLocations", "destroyLocation", "insertLocation", "destroyLocations", "getCount"] },
    { "id": "session.crud", "api": "createSession/endSession", "native": ["createSession", "endSession", "discardSession", "getPendingSessions"] },
    { "id": "motion.tracking", "api": "MotionEngine", "native": ["startMotionTracking", "configureAutoPause"], "events": ["motionActivity", "autoPause", "autoResume", "motionchange"] },
    { "id": "liveactivity.ios", "api": "LiveActivity", "native": ["setLiveActivityEnabled", "startLiveActivity", "updateLiveActivity", "endLiveActivity"] },
    { "id": "liveactivity.android", "api": "setLiveActivityEnabled", "native": ["setLiveActivityEnabled", "getLiveActivityEnabled"] },
    { "id": "provider.events", "api": "ProviderEvents", "events": ["providerChange", "powerSaveChange", "connectivityChange"] },
    { "id": "provider.battery.android", "api": "OEMBatteryManager", "native": ["isIgnoringBatteryOptimizations", "requestBatteryOptimizationPermission", "openOemBatterySettings"] },
    { "id": "ios.accuracy", "api": "requestTemporaryFullAccuracy", "native": ["requestTemporaryFullAccuracy"] },
    { "id": "headless.android", "api": "registerHeadlessTask", "native": ["FitnessHeadlessTaskService", "HeadlessTaskManager"] },
    { "id": "timebased", "api": "TimeBasedTracker", "native": ["startTimeBasedTracking", "stopTimeBasedTracking"], "events": ["timeBasedTick"] },
    { "id": "odometer", "api": "getOdometer", "native": ["getOdometer", "resetOdometer", "setOdometer"] },
    { "id": "geomath.polygon", "api": "GeoMath.pointInPolygon", "test": "unit" }
  ]
}
