diff --git a/redux-promise/redux-promise-tests.ts b/redux-promise/redux-promise-tests.ts
new file mode 100644
index 000000000..a5aef668b
--- /dev/null
+++ b/redux-promise/redux-promise-tests.ts
@@ -0,0 +1,30 @@
+///
+///
+///
+///
+
+import {Promise} from 'es6-promise';
+import {createAction} from 'redux-actions';
+import { createStore, applyMiddleware } from 'redux';
+import promise from 'redux-promise';
+import PromiseInterface = ReduxPromise.PromiseInterface;
+
+declare var userReducer: any;
+
+const appStore = createStore(userReducer, applyMiddleware(
+ promise
+));
+
+
+appStore.dispatch(
+ listUsers()
+);
+
+function listUsers(): PromiseInterface {
+ return createAction('LIST_USERS',
+ () => {
+ return Promise.resolve([{ email: 'me@definitely.typed' }]);
+ });
+}
+
+
diff --git a/redux-promise/redux-promise.d.ts b/redux-promise/redux-promise.d.ts
new file mode 100644
index 000000000..58b6d712a
--- /dev/null
+++ b/redux-promise/redux-promise.d.ts
@@ -0,0 +1,18 @@
+// Type definitions for redux-promise v0.5.3
+// Project: https://github.com/acdlite/redux-promise
+// Definitions by: Rogelio Morrell Caballero
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare namespace ReduxPromise {
+ export interface Promise extends Redux.Middleware {}
+ export interface PromiseInterface {
+ (dispatch: Redux.Dispatch, getState?: () => T): any;
+ }
+}
+
+declare module "redux-promise" {
+ var promise: ReduxPromise.Promise;
+ export default promise;
+}
\ No newline at end of file