CB-12369: Add plugin typings from DefinitelyTyped

 This closes #33
diff --git a/package.json b/package.json
index 37852e0..8e6386e 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,7 @@
   "name": "cordova-plugin-device-orientation",
   "version": "1.0.6-dev",
   "description": "Cordova Device Orientation Plugin",
+  "types": "./types/index.d.ts",
   "cordova": {
     "id": "cordova-plugin-device-orientation",
     "platforms": [
diff --git a/types/index.d.ts b/types/index.d.ts
new file mode 100644
index 0000000..dcd9654
--- /dev/null
+++ b/types/index.d.ts
@@ -0,0 +1,86 @@
+// Type definitions for Apache Cordova Device Orientation plugin
+// Project: https://github.com/apache/cordova-plugin-device-orientation
+// 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 compass. The compass is a sensor that detects
+     * the direction or heading that the device is pointed, typically from the top of the device.
+     * It measures the heading in degrees from 0 to 359.99, where 0 is north.
+     */
+    compass: Compass;
+}
+
+/** 
+ * This plugin provides access to the device's compass. The compass is a sensor that detects
+ * the direction or heading that the device is pointed, typically from the top of the device.
+ * It measures the heading in degrees from 0 to 359.99, where 0 is north.
+ */
+interface Compass {
+    /**
+     * Get the current compass heading. The compass heading is returned via a CompassHeading
+     * object using the onSuccess callback function.
+     * @param onSuccess Success callback that passes CompassHeading object.
+     * @param onError Error callback that passes CompassError object.
+     */
+    getCurrentHeading(
+        onSuccess: (heading: CompassHeading) => void,
+        onError: (error: CompassError) => void,
+        options?: CompassOptions): void;
+    /**
+     * Gets the device's current heading at a regular interval. Each time the heading is retrieved,
+     * the headingSuccess callback function is executed. The returned watch ID references the compass
+     * watch interval. The watch ID can be used with navigator.compass.clearWatch to stop watching
+     * the navigator.compass.
+     * @param onSuccess Success callback that passes CompassHeading object.
+     * @param onError   Error callback that passes CompassError object.
+     * @param options   CompassOptions object
+     */
+    watchHeading(
+        onSuccess: (heading: CompassHeading) => void,
+        onError: (error: CompassError) => void,
+        options?: CompassOptions): number;
+    /**
+     * Stop watching the compass referenced by the watch ID parameter.
+     * @param id The ID returned by navigator.compass.watchHeading.
+     */
+    clearWatch(id: number): void;
+}
+
+/** A CompassHeading object is returned to the compassSuccess callback function. */
+interface CompassHeading {
+    /** The heading in degrees from 0-359.99 at a single moment in time. */
+    magneticHeading: number;
+    /** The heading relative to the geographic North Pole in degrees 0-359.99 at a single moment in time. A negative value indicates that the true heading can't be determined. */
+    trueHeading: number;
+    /** The deviation in degrees between the reported heading and the true heading. */
+    headingAccuracy: number;
+    /** The time at which this heading was determined. */
+    timestamp: number;
+}
+
+interface CompassOptions {
+    filter?: number;
+    frequency?: number;
+}
+
+/** A CompassError object is returned to the onError callback function when an error occurs. */
+interface CompassError {
+    /**
+     * One of the predefined error codes
+     *     CompassError.COMPASS_INTERNAL_ERR
+     *     CompassError.COMPASS_NOT_SUPPORTED
+     */
+    code: number;
+}
+
+declare var CompassError: {
+    /** Constructor for CompassError object */
+    new(code: number): CompassError;
+    COMPASS_INTERNAL_ERR: number;
+    COMPASS_NOT_SUPPORTED: number
+}
\ No newline at end of file