// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Geolocation Sensor (https://wicg.github.io/geolocation-sensor/)

[Constructor(optional GeolocationSensorOptions options = {}),
 SecureContext,
 Exposed=(DedicatedWorker, Window)]
interface GeolocationSensor : Sensor {
  static Promise<GeolocationSensorReading> read(optional ReadOptions readOptions = {});
  readonly attribute unrestricted double? latitude;
  readonly attribute unrestricted double? longitude;
  readonly attribute unrestricted double? altitude;
  readonly attribute unrestricted double? accuracy;
  readonly attribute unrestricted double? altitudeAccuracy;
  readonly attribute unrestricted double? heading;
  readonly attribute unrestricted double? speed;
};

dictionary GeolocationSensorOptions : SensorOptions {
  // placeholder for GeolocationSensor-specific options
};

dictionary ReadOptions : GeolocationSensorOptions {
  AbortSignal? signal;
};

dictionary GeolocationSensorReading {
  DOMHighResTimeStamp? timestamp;
  double? latitude;
  double? longitude;
  double? altitude;
  double? accuracy;
  double? altitudeAccuracy;
  double? heading;
  double? speed;
};

dictionary GeolocationReadingValues {
  required double? latitude;
  required double? longitude;
  required double? altitude;
  required double? accuracy;
  required double? altitudeAccuracy;
  required double? heading;
  required double? speed;
};
