diff --git a/zynga-scroller/zynga-scroller-tests.ts b/zynga-scroller/zynga-scroller-tests.ts
new file mode 100644
index 0000000000..575c8f3fc8
--- /dev/null
+++ b/zynga-scroller/zynga-scroller-tests.ts
@@ -0,0 +1,36 @@
+///
+
+var scroller: Scroller = new Scroller((left, top, zoom) => { });
+scroller = new Scroller((left, top, zoom) => { }, {
+ scrollingX: true,
+ scrollingY: true,
+ animating: true,
+ animationDuration: 400,
+ bouncing: false,
+ locking: false,
+ paging: false,
+ snapping: true,
+ zooming: 10,
+ minZoom: 1,
+ maxZoom: 2,
+});
+
+scroller.setDimensions(10, 10, 10, 10);
+scroller.setPosition(200, 300);
+scroller.setSnapSize(300, 300);
+scroller.activatePullToRefresh(200, () => { }, () => { }, () => { });
+scroller.finishPullToRefresh();
+var data: {
+ left: number,
+ top: number,
+ zoom: number
+} = scroller.getValues();
+scroller.zoomTo(10);
+scroller.zoomBy(10);
+scroller.doMouseZoom(10, 10, 10, 10);
+scroller.doTouchStart({
+ pageX: 10,
+ pageY: 20
+}, 200);
+scroller.doTouchMove([10], 200);
+scroller.doTouchEnd(300);
\ No newline at end of file
diff --git a/zynga-scroller/zynga-scroller.ts b/zynga-scroller/zynga-scroller.ts
new file mode 100644
index 0000000000..9e1e4bb926
--- /dev/null
+++ b/zynga-scroller/zynga-scroller.ts
@@ -0,0 +1,49 @@
+// Type definitions for Zynga Scroller
+// Definitions by: Marcelo Haskell Camargo
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare class Scroller {
+ constructor(a: (left: number, top: number, zoom: number) => void, b?: {
+ scrollingX?: boolean,
+ scrollingY?: boolean,
+ animating?: boolean,
+ animationDuration?: number,
+ bouncing?: boolean,
+ locking?: boolean,
+ paging?: boolean,
+ snapping?: boolean,
+ zooming?: number,
+ minZoom?: number,
+ maxZoom?: number
+ });
+ setDimensions(clientWidth: number, clientHeight: number, contentWidth: number,
+ contentHeight: number): void;
+ setPosition(clientLeft: number, clientTop: number): void;
+ setSnapSize(width: number, height: number);
+ activatePullToRefresh(height: number, activate: () => void,
+ deactivate: () => void, start: () => void);
+ finishPullToRefresh(): void;
+ getValues(): {
+ left: number,
+ top: number,
+ zoom: number
+ };
+ zoomTo(level: number, animate?: boolean, originLeft?: number,
+ originTop?: number): void;
+ zoomBy(factor: number, animate?: boolean, originLeft?:number,
+ originTop?: number): void;
+ scrollTo(left: number, top: number, animate?: boolean): void;
+ scrollBy(leftOffset: number, topOffset: number, animate?: boolean): void;
+ doMouseZoom(wheelData: number, timeStamp: number, pageX: number,
+ pageY: number): void;
+ doTouchStart(touches: {
+ pageX: number,
+ pageY: number,
+ }, timeStamp: number): void;
+ doTouchMove(touches: {
+ pageX: number,
+ pageY: number,
+ }, timeStamp: number, scale?: number): void;
+ doTouchMove(touches: [any], timeStamp: number);
+ doTouchEnd(timeStamp: number): void;
+}
\ No newline at end of file