// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Screen Wake Lock API (https://w3c.github.io/screen-wake-lock/)

[SecureContext]
partial interface Navigator {
  [SameObject] readonly attribute WakeLock wakeLock;
};

[SecureContext, Exposed=(Window)]
interface WakeLock {
  Promise<WakeLockSentinel> request(WakeLockType type);
};

[SecureContext, Exposed=(Window)]
interface WakeLockSentinel : EventTarget {
  readonly attribute WakeLockType type;
  Promise<void> release();
  attribute EventHandler onrelease;
};

enum WakeLockType { "screen" };
