interface Event {
};
interface Error {
};
dictionary EventInit {
};
interface Sensor : EventTarget {
readonly attribute SensorState state;
readonly attribute SensorReading? reading;
void start();
void stop();
attribute EventHandler onchange;
attribute EventHandler onstatechange;
attribute EventHandler onerror;
};
dictionary SensorOptions {
double? frequency;
};
enum SensorState {
"idle",
"activating",
"active",
"errored"
};
interface SensorReading {
readonly attribute DOMHighResTimeStamp timeStamp;
};
[Constructor(DOMString type, SensorReadingEventInit eventInitDict)]
interface SensorReadingEvent : Event {
readonly attribute SensorReading reading;
};
dictionary SensorReadingEventInit : EventInit {
SensorReading reading;
};
[Constructor(DOMString type, SensorErrorEventInit errorEventInitDict)]
interface SensorErrorEvent : Event {
readonly attribute Error error;
};
dictionary SensorErrorEventInit : EventInit {
Error error;
};
[Constructor(optional SensorOptions sensorOptions)]
interface AmbientLightSensor : Sensor {
readonly attribute AmbientLightSensorReading? reading;
};
[Constructor(AmbientLightSensorReadingInit ambientLightSensorReadingInit)]
interface AmbientLightSensorReading : SensorReading {
readonly attribute unrestricted double illuminance;
};
dictionary AmbientLightSensorReadingInit {
unrestricted double illuminance;
};