diff --git a/iscroll/iscroll-5-lite.d.ts b/iscroll/iscroll-5-lite.d.ts
new file mode 100644
index 000000000..1cd83b1dd
--- /dev/null
+++ b/iscroll/iscroll-5-lite.d.ts
@@ -0,0 +1,48 @@
+// Type definitions for iScroll Lite 4.1
+// Project: http://cubiq.org/iscroll-4
+// Definitions by: Boris Yankov and Christiaan Rakowski
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+interface iScrollEvent {
+ (e: Event): void;
+}
+
+interface iScrollOptions {
+ hScroll?: boolean;
+ vScroll?: boolean;
+ x?: number;
+ y?: number;
+ bounce?: boolean;
+ bounceLock?: boolean;
+ momentum?: boolean;
+ lockDirection?: boolean;
+ useTransform?: boolean;
+ useTransition?: boolean;
+
+ // Events
+ onRefresh?: iScrollEvent;
+ onBeforeScrollStart?: iScrollEvent;
+ onScrollStart?: iScrollEvent;
+ onBeforeScrollMove?: iScrollEvent;
+ onScrollMove?: iScrollEvent;
+ onBeforeScrollEnd?: iScrollEvent;
+ onScrollEnd?: iScrollEvent;
+ onTouchEnd?: iScrollEvent;
+ onDestroy?: iScrollEvent;
+}
+
+declare class iScroll {
+
+ constructor (element: string, options?: iScrollOptions);
+ constructor (element: HTMLElement, options?: iScrollOptions);
+
+ destroy(): void;
+ refresh(): void;
+ scrollTo(x: number, y: number, time?: number, relative?: boolean): void;
+ scrollToElement(element: string, time?: number): void;
+ scrollToElement(element: HTMLElement, time?: number): void;
+ disable(): void;
+ enable(): void;
+ stop(): void;
+}
diff --git a/iscroll/iscroll-5-tests.ts b/iscroll/iscroll-5-tests.ts
new file mode 100644
index 000000000..773b62acf
--- /dev/null
+++ b/iscroll/iscroll-5-tests.ts
@@ -0,0 +1,31 @@
+///
+
+var myScroll1 = new iScroll('wrapper');
+var myScroll2 = new iScroll('wrapper', { hScrollbar: false, vScrollbar: false });
+var myScroll3= new iScroll('wrapper', {
+ snap: true,
+ momentum: false,
+ hScrollbar: false,
+ vScrollbar: false
+});
+var myScroll4 = new iScroll('wrapper', {
+ snap: 'li',
+ momentum: false,
+ hScrollbar: false,
+ vScrollbar: false
+});
+var myScroll6 = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
+
+myScroll1.refresh();
+myScroll1.scrollTo(0, 100);
+myScroll1.scrollTo(0, 100, 200);
+myScroll1.scrollTo(0, 100, 200, true);
+
+myScroll1.scrollToElement('selectedElement');
+myScroll1.scrollToElement('selectedElement', 250);
+
+myScroll1.scrollToElement(document.getElementById('selectedElement'));
+myScroll1.scrollToElement(document.getElementById('selectedElement'), 250);
+
+var myScroll7 = new iScroll(document.getElementById('wrapper'));
+var myScroll8 = new iScroll(document.getElementById('wrapper'), { scrollbarClass: 'myScrollbar' });
\ No newline at end of file
diff --git a/iscroll/iscroll-5.d.ts b/iscroll/iscroll-5.d.ts
new file mode 100644
index 000000000..34234c00a
--- /dev/null
+++ b/iscroll/iscroll-5.d.ts
@@ -0,0 +1,76 @@
+// Type definitions for iScroll 4.2
+// Project: http://cubiq.org/iscroll-4
+// Definitions by: Boris Yankov and Christiaan Rakowski
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+interface iScrollEvent {
+ (e: Event): void;
+}
+
+interface iScrollOptions {
+ hScroll?: boolean;
+ vScroll?: boolean;
+ x?: number;
+ y?: number;
+ bounce?: boolean;
+ bounceLock?: boolean;
+ momentum?: boolean;
+ lockDirection?: boolean;
+ useTransform?: boolean;
+ useTransition?: boolean;
+ topOffset?: number;
+ checkDOMChanges?: boolean;
+ handleClick?: boolean;
+
+ // Scrollbar
+ hScrollbar?: boolean;
+ vScrollbar?: boolean;
+ fixedScrollbar?: boolean;
+ hideScrollbar?: boolean;
+ fadeScrollbar?: boolean;
+ scrollbarClass?: string;
+
+ // Zoom
+ zoom?: boolean;
+ zoomMin?: number;
+ zoomMax?: number;
+ doubleTapZoom?: number;
+ wheelAction?: string;
+
+ // Snap
+ snap?: any;
+ snapThreshold?: number;
+
+ // Events
+ onRefresh?: iScrollEvent;
+ onBeforeScrollStart?: iScrollEvent;
+ onScrollStart?: iScrollEvent;
+ onBeforeScrollMove?: iScrollEvent;
+ onScrollMove?: iScrollEvent;
+ onBeforeScrollEnd?: iScrollEvent;
+ onScrollEnd?: iScrollEvent;
+ onTouchEnd?: iScrollEvent;
+ onDestroy?: iScrollEvent;
+ onZoomStart?: iScrollEvent;
+ onZoom?: iScrollEvent;
+ onZoomEnd?: iScrollEvent;
+}
+
+declare class iScroll {
+
+ constructor (element: string, options?: iScrollOptions);
+ constructor (element: HTMLElement, options?: iScrollOptions);
+
+ destroy(): void;
+ refresh(): void;
+ scrollTo(x: number, y: number, time?: number, relative?: boolean): void;
+ scrollToElement(element: string, time?: number): void;
+ scrollToElement(element: HTMLElement, time?: number): void;
+ scrollToPage(pageX: number, pageY: number, time?: number): void;
+ disable(): void;
+ enable(): void;
+ stop(): void;
+ zoom(x: number, y: number, scale: number, time?: number): void;
+ isReady(): boolean;
+}