diff --git a/jquery.tipsy/jquery.tipsy-tests.ts b/jquery.tipsy/jquery.tipsy-tests.ts
new file mode 100644
index 000000000..384e34a21
--- /dev/null
+++ b/jquery.tipsy/jquery.tipsy-tests.ts
@@ -0,0 +1,32 @@
+///
+///
+
+// basic
+$('#example-1').tipsy();
+
+// code snippets from http://onehackoranother.com/projects/jquery/tipsy/
+$('#foo').tipsy({gravity: 'n'}); // nw | n | ne | w | e | sw | s | se
+
+$('#foo').tipsy({gravity: $.fn.tipsy.autoNS});
+
+$('#example-fade').tipsy({fade: true});
+
+$('#example-custom-attribute').tipsy({title: 'id'});
+
+$('#example-callback').tipsy({title: function() { return this.getAttribute('original-title').toUpperCase(); } });
+
+$('#example-fallback').tipsy({fallback: "Where's my tooltip yo'?" });
+
+$('#example-html').tipsy({html: true });
+
+$('#example-delay').tipsy({delayIn: 500, delayOut: 1000});
+
+$(function() {
+ $('#focus-example [title]').tipsy({trigger: 'focus', gravity: 'w'});
+});
+
+function onclickExample1() { $("#manual-example a[rel=tipsy]").tipsy("show"); return false; }
+function onclickExample2() { $("#manual-example a[rel=tipsy]").tipsy("hide"); return false; }
+$('#manual-example a[rel=tipsy]').tipsy({trigger: 'manual'});
+
+$('a.live-tipsy').tipsy({live: true});
\ No newline at end of file
diff --git a/jquery.tipsy/jquery.tipsy.d.ts b/jquery.tipsy/jquery.tipsy.d.ts
new file mode 100644
index 000000000..097f7ece8
--- /dev/null
+++ b/jquery.tipsy/jquery.tipsy.d.ts
@@ -0,0 +1,36 @@
+// Type definitions for jQuery.tipsy
+// Project: http://onehackoranother.com/projects/jquery/tipsy/
+// https://github.com/jaz303/tipsy
+// Definitions by: Brian Dukes
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+interface JQuery {
+ tipsy: JQueryTipsy.Tipsy;
+}
+
+
+declare module JQueryTipsy {
+ interface Tipsy {
+ (options?: Options): JQuery;
+ autoNS: () => string;
+ autoWE: () => string;
+ autoSWSE: () => string;
+ autoNWNE: () => string;
+ }
+
+ interface Options {
+ delayIn?: number;
+ delayOut?: number;
+ fade?: boolean;
+ fallback?: string;
+ gravity?: any; // string or () => string
+ html?: boolean;
+ live?: boolean;
+ offset?: number;
+ opacity?: number;
+ title?: any; // string or () => string
+ trigger?: string;
+ }
+}