    interface Event {
    };

    dictionary EventInit {
    };

    [Constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict)]
    interface DeviceOrientationEvent : Event {
      readonly attribute double? alpha;
      readonly attribute double? beta;
      readonly attribute double? gamma;
      readonly attribute boolean absolute;
    };

    dictionary DeviceOrientationEventInit : EventInit {
      double? alpha;
      double? beta;
      double? gamma;
      boolean absolute;
    };

    [Callback, NoInterfaceObject]
    interface DeviceAcceleration {
      readonly attribute double? x;
      readonly attribute double? y;
      readonly attribute double? z;
    };

    [Callback, NoInterfaceObject]
    interface DeviceRotationRate {
      readonly attribute double? alpha;
      readonly attribute double? beta;
      readonly attribute double? gamma;
    };

    [Constructor(DOMString type, optional DeviceMotionEventInit eventInitDict)]
    interface DeviceMotionEvent : Event {
      readonly attribute DeviceAcceleration? acceleration;
      readonly attribute DeviceAcceleration? accelerationIncludingGravity;
      readonly attribute DeviceRotationRate? rotationRate;
      readonly attribute double? interval;
    };

    dictionary DeviceMotionEventInit : EventInit {
      DeviceAcceleration? acceleration;
      DeviceAcceleration? accelerationIncludingGravity;
      DeviceRotationRate? rotationRate;
      double? interval;
    };