diff --git a/polylabel/polylabel-tests.ts b/polylabel/polylabel-tests.ts
new file mode 100644
index 0000000000..9e23d20d38
--- /dev/null
+++ b/polylabel/polylabel-tests.ts
@@ -0,0 +1,10 @@
+///
+///
+import polylabel = require('polylabel');
+
+const polygon = [[[3116,3071],[3118,3068],[3108,3102],[3751,927]]]
+let p: number[]
+p = polylabel(polygon)
+p = polylabel(polygon, 1.0)
+p = polylabel(polygon, 1.0, true)
+p = polylabel(polygon, 1.0, false)
diff --git a/polylabel/polylabel.d.ts b/polylabel/polylabel.d.ts
new file mode 100644
index 0000000000..21f50d1b41
--- /dev/null
+++ b/polylabel/polylabel.d.ts
@@ -0,0 +1,33 @@
+// Type definitions for polylabel 1.0.0
+// Project: https://github.com/mapbox/polylabel
+// Definitions by: Denis Carriere
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+/**
+ * polylabel
+ *
+ * A fast algorithm for finding polygon pole of inaccessibility, the most distant internal point from
+ * the polygon outline (not to be confused with centroid), implemented as a JavaScript library.
+ * Useful for optimal placement of a text label on a polygon.
+ * It's an iterative grid algorithm, inspired by paper by Garcia-Castellanos & Lombardo, 2007.
+ * Unlike the one in the paper, this algorithm:
+ *
+ * - guarantees finding global optimum within the given precision
+ * - is many times faster (10-40x)
+ */
+declare module 'polylabel' {
+ /**
+ * Polylabel returns the pole of inaccessibility coordinate in [x, y] format.
+ *
+ * @name polylabel
+ * @function
+ * @param {Array} polygon - Given polygon coordinates in GeoJSON-like format
+ * @param {number} precision - Precision (1.0 by default)
+ * @param {boolean} debug - Debugging for Console
+ * @return {Array}
+ * @example
+ * var p = polylabel(polygon, 1.0);
+ */
+ function polylabel (polygon: number[][][], precision?: number, debug?: boolean): number[];
+ export = polylabel;
+}