diff --git a/pikaday/pikaday-tests.ts b/pikaday/pikaday-tests.ts
new file mode 100644
index 000000000..924a559bd
--- /dev/null
+++ b/pikaday/pikaday-tests.ts
@@ -0,0 +1,57 @@
+///
+///
+///
+
+new Pikaday({field: document.getElementById('datepicker')});
+new Pikaday({field: $('#datepicker')[0]});
+
+(() => {
+ var field:HTMLInputElement = document.getElementById('datepicker');
+ var picker = new Pikaday({
+ onSelect: function (date:Date) {
+ field.value = picker.toString();
+ console.log(date.toISOString());
+ }
+ });
+ field.parentNode.insertBefore(picker.el, field.nextSibling);
+})();
+
+(() => {
+ var picker = new Pikaday({
+ field: document.getElementById('datepicker'),
+ format: 'D MMM YYYY',
+ onSelect: function () {
+ console.log(this.getMoment().format('Do MMMM YYYY'));
+ }
+ });
+ picker.toString();
+ picker.toString('YYYY-MM-DD');
+ picker.getDate();
+ picker.setDate('2015-01-01');
+ picker.getMoment();
+ picker.setMoment(moment('14th February 2014', 'DDo MMMM YYYY'));
+ picker.gotoDate(new Date(2014, 1));
+ picker.gotoToday();
+ picker.gotoMonth(2);
+ picker.nextMonth();
+ picker.prevMonth();
+ picker.gotoYear(2015);
+ picker.setMinDate(new Date);
+ picker.setMaxDate(new Date);
+ picker.isVisible();
+ picker.show();
+ picker.adjustPosition();
+ picker.hide();
+ picker.destroy();
+})();
+
+(() => {
+ var i18n:PikadayI18nConfig = {
+ previousMonth: 'Previous Month',
+ nextMonth: 'Next Month',
+ months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+ weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
+ weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
+ };
+ new Pikaday({i18n});
+})();
diff --git a/pikaday/pikaday.d.ts b/pikaday/pikaday.d.ts
new file mode 100644
index 000000000..21a112b8e
--- /dev/null
+++ b/pikaday/pikaday.d.ts
@@ -0,0 +1,89 @@
+// Type definitions for pikaday
+// Project: https://github.com/dbushell/Pikaday
+// Definitions by: Rudolph Gottesheim
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+interface PikadayI18nConfig {
+ previousMonth: string;
+ nextMonth: string;
+ months: string[];
+ weekdays: string[];
+ weekdaysShort: string[];
+}
+
+interface PikadayOptions {
+ field?: HTMLElement;
+ format?: string;
+ trigger?: HTMLElement;
+ bound?: boolean;
+ position?: string;
+ reposition?: boolean;
+ container?: HTMLElement;
+ defaultDate?: Date;
+ setDefaultDate?: boolean;
+ firstDay?: number;
+ minDate?: Date;
+ maxDate?: Date;
+ disableWeekends?: boolean;
+ disableDayFn?: (date:Date) => boolean;
+ yearRange?: number[];
+ showWeekNumber?: boolean;
+ isRTL?: boolean;
+ i18n?: PikadayI18nConfig;
+ yearSuffix?: string;
+ showMonthAfterYear?: boolean;
+ numberOfMonths?: number;
+ mainCalendar?: string;
+ theme?: string;
+ onSelect?: (date:Date) => void;
+ onOpen?: () => void;
+ onClose?: () => void;
+ onDraw?: () => void;
+}
+
+declare class Pikaday {
+ el:HTMLElement;
+
+ constructor(options:PikadayOptions);
+
+ toString():string;
+ toString(format:string):string;
+
+ getDate():Date|void;
+
+ setDate(date:string|Date, triggerOnSelect?:boolean):void;
+
+ getMoment():moment.Moment;
+
+ setMoment(moment:any):void;
+
+ gotoDate(date:Date):void;
+
+ gotoToday():void;
+
+ gotoMonth(monthIndex:number):void;
+
+ gotoYear(year:number):void;
+
+ nextMonth():void;
+
+ prevMonth():void;
+
+ gogoYear(year:number):void;
+
+ setMinDate(date:Date):void;
+
+ setMaxDate(date:Date):void;
+
+ isVisible():boolean;
+
+ show():void;
+
+ hide():void;
+
+ adjustPosition():void;
+
+ destroy():void;
+}