{
  "api": {
    "name": "GeolocationPlugin",
    "slug": "geolocationplugin",
    "docs": "",
    "tags": [],
    "methods": [
      {
        "name": "getCurrentPosition",
        "signature": "(options?: PositionOptions | undefined) => Promise<Position>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "PositionOptions | undefined"
          }
        ],
        "returns": "Promise<Position>",
        "tags": [
          {
            "name": "since",
            "text": "1.0.0"
          }
        ],
        "docs": "Get the current GPS location of the device",
        "complexTypes": [
          "Position",
          "PositionOptions"
        ],
        "slug": "getcurrentposition"
      },
      {
        "name": "watchPosition",
        "signature": "(options: PositionOptions, callback: WatchPositionCallback) => Promise<CallbackID>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "PositionOptions"
          },
          {
            "name": "callback",
            "docs": "",
            "type": "WatchPositionCallback"
          }
        ],
        "returns": "Promise<string>",
        "tags": [
          {
            "name": "since",
            "text": "1.0.0"
          }
        ],
        "docs": "Set up a watch for location changes. Note that watching for location changes\ncan consume a large amount of energy. Be smart about listening only when you need to.",
        "complexTypes": [
          "PositionOptions",
          "WatchPositionCallback",
          "CallbackID"
        ],
        "slug": "watchposition"
      },
      {
        "name": "clearWatch",
        "signature": "(options: ClearWatchOptions) => Promise<void>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "ClearWatchOptions"
          }
        ],
        "returns": "Promise<void>",
        "tags": [
          {
            "name": "since",
            "text": "1.0.0"
          }
        ],
        "docs": "Clear a given watch",
        "complexTypes": [
          "ClearWatchOptions"
        ],
        "slug": "clearwatch"
      },
      {
        "name": "checkPermissions",
        "signature": "() => Promise<PermissionStatus>",
        "parameters": [],
        "returns": "Promise<PermissionStatus>",
        "tags": [
          {
            "name": "since",
            "text": "1.0.0"
          }
        ],
        "docs": "Check location permissions.  Will throw if system location services are disabled.",
        "complexTypes": [
          "PermissionStatus"
        ],
        "slug": "checkpermissions"
      },
      {
        "name": "requestPermissions",
        "signature": "(permissions?: GeolocationPluginPermissions | undefined) => Promise<PermissionStatus>",
        "parameters": [
          {
            "name": "permissions",
            "docs": "",
            "type": "GeolocationPluginPermissions | undefined"
          }
        ],
        "returns": "Promise<PermissionStatus>",
        "tags": [
          {
            "name": "since",
            "text": "1.0.0"
          }
        ],
        "docs": "Request location permissions.  Will throw if system location services are disabled.",
        "complexTypes": [
          "PermissionStatus",
          "GeolocationPluginPermissions"
        ],
        "slug": "requestpermissions"
      }
    ],
    "properties": []
  },
  "interfaces": [
    {
      "name": "Position",
      "slug": "position",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "timestamp",
          "tags": [
            {
              "text": "1.0.0",
              "name": "since"
            }
          ],
          "docs": "Creation timestamp for coords",
          "complexTypes": [],
          "type": "number"
        },
        {
          "name": "coords",
          "tags": [
            {
              "text": "1.0.0",
              "name": "since"
            }
          ],
          "docs": "The GPS coordinates along with the accuracy of the data",
          "complexTypes": [],
          "type": "{ latitude: number; longitude: number; accuracy: number; altitudeAccuracy: number | null | undefined; altitude: number | null; speed: number | null; heading: number | null; }"
        }
      ]
    },
    {
      "name": "PositionOptions",
      "slug": "positionoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "enableHighAccuracy",
          "tags": [
            {
              "text": "false",
              "name": "default"
            },
            {
              "text": "1.0.0",
              "name": "since"
            }
          ],
          "docs": "High accuracy mode (such as GPS, if available)\n\nOn Android 12+ devices it will be ignored if users didn't grant\nACCESS_FINE_LOCATION permissions (can be checked with location alias).",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "timeout",
          "tags": [
            {
              "text": "10000",
              "name": "default"
            },
            {
              "text": "1.0.0",
              "name": "since"
            }
          ],
          "docs": "The maximum wait time in milliseconds for location updates.\n\nIn Android, since version 4.0.0 of the plugin, timeout gets ignored for getCurrentPosition.",
          "complexTypes": [],
          "type": "number | undefined"
        },
        {
          "name": "maximumAge",
          "tags": [
            {
              "text": "0",
              "name": "default"
            },
            {
              "text": "1.0.0",
              "name": "since"
            }
          ],
          "docs": "The maximum age in milliseconds of a possible cached position that is acceptable to return",
          "complexTypes": [],
          "type": "number | undefined"
        }
      ]
    },
    {
      "name": "ClearWatchOptions",
      "slug": "clearwatchoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "id",
          "tags": [],
          "docs": "",
          "complexTypes": [
            "CallbackID"
          ],
          "type": "CallbackID"
        }
      ]
    },
    {
      "name": "PermissionStatus",
      "slug": "permissionstatus",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "location",
          "tags": [
            {
              "text": "1.0.0",
              "name": "since"
            }
          ],
          "docs": "Permission state for location alias.\n\nOn Android it requests/checks both ACCESS_COARSE_LOCATION and\nACCESS_FINE_LOCATION permissions.\n\nOn iOS and web it requests/checks location permission.",
          "complexTypes": [
            "PermissionState"
          ],
          "type": "PermissionState"
        },
        {
          "name": "coarseLocation",
          "tags": [
            {
              "text": "1.2.0",
              "name": "since"
            }
          ],
          "docs": "Permission state for coarseLocation alias.\n\nOn Android it requests/checks ACCESS_COARSE_LOCATION.\n\nOn Android 12+, users can choose between Approximate location (ACCESS_COARSE_LOCATION) or\nPrecise location (ACCESS_FINE_LOCATION), so this alias can be used if the app doesn't\nneed high accuracy.\n\nOn iOS and web it will have the same value as location alias.",
          "complexTypes": [
            "PermissionState"
          ],
          "type": "PermissionState"
        }
      ]
    },
    {
      "name": "GeolocationPluginPermissions",
      "slug": "geolocationpluginpermissions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "permissions",
          "tags": [],
          "docs": "",
          "complexTypes": [
            "GeolocationPermissionType"
          ],
          "type": "GeolocationPermissionType[]"
        }
      ]
    }
  ],
  "enums": [],
  "typeAliases": [
    {
      "name": "WatchPositionCallback",
      "slug": "watchpositioncallback",
      "docs": "",
      "types": [
        {
          "text": "(position: Position | null, err?: any): void",
          "complexTypes": [
            "Position"
          ]
        }
      ]
    },
    {
      "name": "CallbackID",
      "slug": "callbackid",
      "docs": "",
      "types": [
        {
          "text": "string",
          "complexTypes": []
        }
      ]
    },
    {
      "name": "PermissionState",
      "slug": "permissionstate",
      "docs": "",
      "types": [
        {
          "text": "'prompt'",
          "complexTypes": []
        },
        {
          "text": "'prompt-with-rationale'",
          "complexTypes": []
        },
        {
          "text": "'granted'",
          "complexTypes": []
        },
        {
          "text": "'denied'",
          "complexTypes": []
        }
      ]
    },
    {
      "name": "GeolocationPermissionType",
      "slug": "geolocationpermissiontype",
      "docs": "",
      "types": [
        {
          "text": "'location'",
          "complexTypes": []
        },
        {
          "text": "'coarseLocation'",
          "complexTypes": []
        }
      ]
    }
  ],
  "pluginConfigs": []
}