typedef (Float32Array or Float64Array or DOMMatrix) RotationMatrixType;

[SecureContext, Exposed=Window]
interface OrientationSensor : Sensor {
  readonly attribute FrozenArray<double>? quaternion;
  void populateMatrix(RotationMatrixType targetMatrix);
};

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

dictionary OrientationSensorOptions : SensorOptions  {
  LocalCoordinateSystem referenceFrame = "device";
};

[Constructor(optional OrientationSensorOptions sensorOptions), SecureContext, Exposed=Window]
interface AbsoluteOrientationSensor : OrientationSensor {
};

[Constructor(optional OrientationSensorOptions sensorOptions), SecureContext, Exposed=Window]
interface RelativeOrientationSensor : OrientationSensor {
};
