diff --git a/jquery-knob/jquery-knob-tests.ts b/jquery-knob/jquery-knob-tests.ts
new file mode 100644
index 0000000000..a6c85e2c8b
--- /dev/null
+++ b/jquery-knob/jquery-knob-tests.ts
@@ -0,0 +1,37 @@
+///
+
+// create from html attrs
+$('').knob();
+
+// create with object
+$('').knob({
+ min: 0,
+ max: 100,
+ angleArc: 270
+});
+
+// hooks
+var hookKnob = $('').knob({
+ release: function(value) {
+ console.log(value);
+ },
+ change: function(value) {
+ console.log(value);
+ },
+ draw: function() {
+ console.log(this);
+ },
+ cancel: function() {
+ console.log(this);
+ },
+ format: function(value) {
+ console.log(value);
+ }
+});
+
+// trigger
+hookKnob.trigger('release');
+hookKnob.trigger('change');
+hookKnob.trigger('draw');
+hookKnob.trigger('cancel');
+hookKnob.trigger('format');
\ No newline at end of file
diff --git a/jquery-knob/jquery-knob.d.ts b/jquery-knob/jquery-knob.d.ts
new file mode 100644
index 0000000000..7d02fa34f5
--- /dev/null
+++ b/jquery-knob/jquery-knob.d.ts
@@ -0,0 +1,116 @@
+// Type definitions for jQuery Knob 1.2.11
+// Project: http://anthonyterrien.com/knob/
+// Definitions by: Iain Buchanan
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module JQueryKnob {
+ export interface JQueryKnobOptions {
+ /**
+ * min value | default=0
+ */
+ min?: number;
+ /**
+ * max value | default=100
+ */
+ max?: number;
+ /**
+ * step size | default=1
+ */
+ step?: number;
+ /**
+ * starting angle in degrees | default=0
+ */
+ angleOffset?: number;
+ /**
+ * arc size in degrees | default=360
+ */
+ angleArc?: number;
+ /**
+ * stop at min & max on keydown/mousewheel | default=true
+ */
+ stopper?: boolean;
+ /**
+ * disable input and events | default=false
+ */
+ readOnly?: boolean;
+ /**
+ * direction of progression | default=clockwise
+ */
+ rotation?: string;
+ /**
+ * display mode "cursor", cursor size could be changed passing a
+ * numeric value to the option, default width is used when passing
+ * boolean value "true" | default=gauge
+ */
+ cursor?: string | boolean;
+ /**
+ * gauge thickness
+ */
+ thickness?: number;
+ /**
+ * gauge stroke endings | default=butt, round=rounded line endings
+ */
+ lineCap?: string;
+ /**
+ * dial width
+ */
+ width?: number;
+ /**
+ * default=true | false=hide input
+ */
+ displayInput?: boolean;
+ /**
+ * default=false | true=displays the previous value with transparency
+ */
+ displayPrevious?: boolean;
+ /**
+ * foreground color
+ */
+ fgColor?: string;
+ /**
+ * input value (number) color
+ */
+ inputColor?: string;
+ /**
+ * font family
+ */
+ font?: string;
+ /**
+ * font weight
+ */
+ fontWeight?: string;
+ /**
+ * background color
+ */
+ bgColor?: string;
+ /**
+ * executed on release
+ */
+ release?: (value: number) => void;
+ /**
+ * executed at each change of the value
+ */
+ change?: (value: number) => void;
+ /**
+ * when drawing the canvas
+ */
+ draw?: () => void;
+ /**
+ * triggered on [esc] keydown
+ */
+ cancel?: () => void;
+ /**
+ * allows to format output (add unit %, ms...)
+ */
+ format?: (value: number) => void;
+ }
+}
+
+interface JQuery {
+ /**
+ * Create a knob for the given input field, with optional options
+ */
+ knob(options?: JQueryKnob.JQueryKnobOptions): JQuery;
+}
\ No newline at end of file