blob: ae38803fd26fcb056f62f8599bcbbc77c5223b5a [file] [log] [blame]
// Type definitions for Apache Cordova Device Motion plugin
// Project: https://github.com/apache/cordova-plugin-device-motion
// Definitions by: Microsoft Open Technologies Inc <http://msopentech.com>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies Inc
// Licensed under the MIT license.
interface Navigator {
/**
* This plugin provides access to the device's accelerometer. The accelerometer is a motion sensor
* that detects the change (delta) in movement relative to the current device orientation,
* in three dimensions along the x, y, and z axis.
*/
accelerometer: Accelerometer;
}
/**
* This plugin provides access to the device's accelerometer. The accelerometer is a motion sensor
* that detects the change (delta) in movement relative to the current device orientation,
* in three dimensions along the x, y, and z axis.
*/
interface Accelerometer {
/**
* Stop watching the Acceleration referenced by the watchID parameter.
* @param watchID The ID returned by navigator.accelerometer.watchAcceleration.
*/
clearWatch(watchID: WatchHandle): void;
/**
* Get the current acceleration along the x, y, and z axes.
* These acceleration values are returned to the accelerometerSuccess callback function.
* @param accelerometerSuccess Success callback that gets the Acceleration object.
* @param accelerometerError Success callback
*/
getCurrentAcceleration(
accelerometerSuccess: (acceleration: Acceleration) => void,
accelerometerError: () => void): void;
/**
* Retrieves the device's current Acceleration at a regular interval, executing the
* accelerometerSuccess callback function each time. Specify the interval in milliseconds
* via the acceleratorOptions object's frequency parameter.
* The returned watch ID references the accelerometer's watch interval, and can be used
* with navigator.accelerometer.clearWatch to stop watching the accelerometer.
* @param accelerometerSuccess Callback, that called at every time interval and passes an Acceleration object.
* @param accelerometerError Error callback.
* @param accelerometerOptions Object with options for watchAcceleration
*/
watchAcceleration(
accelerometerSuccess: (acceleration: Acceleration) => void,
accelerometerError: () => void,
accelerometerOptions?: AccelerometerOptions): WatchHandle;
}
/**
* Contains Accelerometer data captured at a specific point in time. Acceleration values include
* the effect of gravity (9.81 m/s^2), so that when a device lies flat and facing up, x, y, and z
* values returned should be 0, 0, and 9.81.
*/
interface Acceleration {
/** Amount of acceleration on the x-axis. (in m/s^2) */
x: number;
/** Amount of acceleration on the y-axis. (in m/s^2) */
y: number;
/** Amount of acceleration on the z-axis. (in m/s^2) */
z: number;
/** Creation timestamp in milliseconds. */
timestamp: number;
}
/** Object with options for watchAcceleration */
interface AccelerometerOptions {
/** How often to retrieve the Acceleration in milliseconds. (Default: 10000) */
frequency?: number;
}
/** Abstract type for watch IDs used by Accelerometer. Values of these type are actually `number` at runtime.*/
interface WatchHandle { }