// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Accelerometer (https://w3c.github.io/accelerometer/)

[Constructor(optional AccelerometerSensorOptions options = {}), SecureContext,
  Exposed=Window]
interface Accelerometer : Sensor {
  readonly attribute double? x;
  readonly attribute double? y;
  readonly attribute double? z;
};

enum AccelerometerLocalCoordinateSystem { "device", "screen" };

dictionary AccelerometerSensorOptions : SensorOptions {
  AccelerometerLocalCoordinateSystem referenceFrame = "device";
};

[Constructor(optional AccelerometerSensorOptions options = {}), SecureContext,
  Exposed=Window]
interface LinearAccelerationSensor : Accelerometer {
};

[Constructor(optional AccelerometerSensorOptions options = {}), SecureContext,
  Exposed=Window]
interface GravitySensor : Accelerometer {
};

dictionary AccelerometerReadingValues {
  required double? x;
  required double? y;
  required double? z;
};

dictionary LinearAccelerationReadingValues : AccelerometerReadingValues {
};

dictionary GravityReadingValues : AccelerometerReadingValues {
};
