diff --git a/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts b/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts
new file mode 100644
index 0000000000..2d060cb768
--- /dev/null
+++ b/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts
@@ -0,0 +1,29 @@
+// Redux Localstorage Filter Test
+// ================================================================================
+///
+///
+///
+
+// Imports
+// --------------------------------------------------------------------------------
+import { compose } from "redux"
+import {
+ default as persistState
+} from "redux-localstorage"
+import * as adapter from "redux-localstorage/lib/adapters/localStorage"
+import { default as debounce } from "redux-localstorage-debounce"
+
+const storageWait = compose(
+ debounce(100)
+)(adapter(window.localStorage))
+const enhancerWait = persistState(storageWait, "test")
+
+const storageMax = compose(
+ debounce(100, 200)
+)(adapter(window.localStorage))
+const enhancerMax = persistState(storageMax, "test")
+
+const storageOpts = compose(
+ debounce(100, { maxWait : 200, foo : "bar" })
+)(adapter(window.localStorage))
+const enhancerOpts = persistState(storageOpts, "test")
diff --git a/redux-localstorage-debounce/redux-localstorage-debounce.d.ts b/redux-localstorage-debounce/redux-localstorage-debounce.d.ts
new file mode 100644
index 0000000000..ff3483c4e1
--- /dev/null
+++ b/redux-localstorage-debounce/redux-localstorage-debounce.d.ts
@@ -0,0 +1,23 @@
+// Type definitions for redux-localstorage-debounce v0.1.0
+// Project: https://github.com/elgerlambert/redux-localstorage-debounce
+// Definitions by: Karol Janyst
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+
+declare namespace ReduxLocalStorage {
+
+ namespace Debounce {
+ interface DebounceOptions {
+ maxWait?: number
+ [key: string]: any
+ }
+ function debounce (wait: number, options?: number | DebounceOptions): (adapter: StorageAdapter) => StorageAdapter
+ }
+
+}
+
+declare module "redux-localstorage-debounce" {
+ export default ReduxLocalStorage.Debounce.debounce
+}
diff --git a/redux-localstorage-filter/redux-localstorage-filter-tests.ts b/redux-localstorage-filter/redux-localstorage-filter-tests.ts
new file mode 100644
index 0000000000..83172ef0c1
--- /dev/null
+++ b/redux-localstorage-filter/redux-localstorage-filter-tests.ts
@@ -0,0 +1,24 @@
+// Redux Localstorage Filter Test
+// ================================================================================
+///
+///
+///
+
+// Imports
+// --------------------------------------------------------------------------------
+import { compose } from "redux"
+import {
+ default as persistState
+} from "redux-localstorage"
+import * as adapter from "redux-localstorage/lib/adapters/localStorage"
+import { default as filter } from "redux-localstorage-filter"
+
+const storageSingle = compose(
+ filter("foo")
+)(adapter(window.localStorage))
+const enhancerSingle = persistState(storageSingle, "test")
+
+const storageMulti = compose(
+ filter(["foo", "bar"])
+)(adapter(window.localStorage))
+const enhancerMulti = persistState(storageMulti, "test")
diff --git a/redux-localstorage-filter/redux-localstorage-filter.d.ts b/redux-localstorage-filter/redux-localstorage-filter.d.ts
new file mode 100644
index 0000000000..3bc1a51a93
--- /dev/null
+++ b/redux-localstorage-filter/redux-localstorage-filter.d.ts
@@ -0,0 +1,27 @@
+// Type definitions for redux-localstorage-filter v0.1.1
+// Project: https://github.com/elgerlambert/redux-localstorage-filter
+// Definitions by: Karol Janyst
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+
+declare namespace ReduxLocalStorage {
+
+ namespace Filter {
+ function getSubset (obj: any, paths: Array): any
+ function filter (paths?: string | Array): (adapter: StorageAdapter) => StorageAdapter
+ }
+
+}
+
+declare module "redux-localstorage-filter" {
+ import getSubset = ReduxLocalStorage.Filter.getSubset
+
+ export {
+ getSubset
+ }
+
+ export default ReduxLocalStorage.Filter.filter
+
+}
diff --git a/redux-localstorage/redux-localstorage-tests.ts b/redux-localstorage/redux-localstorage-tests.ts
new file mode 100644
index 0000000000..f1a4393f7b
--- /dev/null
+++ b/redux-localstorage/redux-localstorage-tests.ts
@@ -0,0 +1,40 @@
+// Redux Localstorage Test
+// ================================================================================
+///
+///
+
+// Imports
+// --------------------------------------------------------------------------------
+import { compose, combineReducers, createStore } from "redux"
+import {
+ default as persistState,
+ mergePersistedState,
+ actionTypes
+} from "redux-localstorage"
+import * as adapterAsyncStorage from "redux-localstorage/lib/adapters/AsyncStorage"
+import * as adapterLocalStorage from "redux-localstorage/lib/adapters/localStorage"
+import * as adapterSessionStorage from "redux-localstorage/lib/adapters/sessionStorage"
+
+const AsyncStorage: any = {}
+
+const rootReducer: Redux.Reducer = (state: any, action: any) => state
+
+const reducer = compose(
+ mergePersistedState()
+)(rootReducer)
+
+const storageAsyncStorage = adapterAsyncStorage(AsyncStorage)
+const storageLocalStorage = adapterLocalStorage(window.localStorage)
+const storageSessionStorage = adapterSessionStorage(window.sessionStorage)
+
+const createStoreAsyncStorage = compose(
+ persistState(storageAsyncStorage, "foo")
+)(createStore)(reducer)
+
+const createStoreLocalStorage = compose(
+ persistState(storageLocalStorage, "foo")
+)(createStore)(reducer)
+
+const createStoreSessionStorage = compose(
+ persistState(storageSessionStorage, "foo")
+)(createStore)(reducer)
diff --git a/redux-localstorage/redux-localstorage.d.ts b/redux-localstorage/redux-localstorage.d.ts
new file mode 100644
index 0000000000..aeeb940aab
--- /dev/null
+++ b/redux-localstorage/redux-localstorage.d.ts
@@ -0,0 +1,67 @@
+// Type definitions for redux-localstorage v1.0.0-rc4
+// Project: https://github.com/elgerlambert/redux-localstorage
+// Definitions by: Karol Janyst
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare namespace ReduxLocalStorage {
+
+ interface ActionTypes {
+ INIT: string
+ }
+
+ interface AdapterCallback {
+ (err?: any, result?: A): void
+ }
+
+ interface StorageAdapter {
+ 0: A
+ put(key: string, value: any, callback: AdapterCallback): void
+ get(key: string, callback: AdapterCallback): void
+ del(key: string, callback: AdapterCallback): void
+ }
+
+ interface StorageAdapterCreator {
+ (storage: A): StorageAdapter
+ }
+
+ interface StorageAdapterEnhancer {}
+
+ function mergePersistedState (merge?: (initialState: A1, persistentState: A2) => A1 & A2): (next: Redux.Reducer) => Redux.Reducer
+
+ function persistState (storage?: StorageAdapter, key?: string, callback?: Function): Redux.GenericStoreEnhancer
+
+}
+
+declare module "redux-localstorage/lib/adapters/AsyncStorage" {
+ const adapterCreator: ReduxLocalStorage.StorageAdapterCreator
+ export = adapterCreator
+}
+
+declare module "redux-localstorage/lib/adapters/localStorage" {
+ const adapterCreator: ReduxLocalStorage.StorageAdapterCreator
+ export = adapterCreator
+}
+
+declare module "redux-localstorage/lib/adapters/sessionStorage" {
+ const adapterCreator: ReduxLocalStorage.StorageAdapterCreator
+ export = adapterCreator
+}
+
+declare module "redux-localstorage" {
+ import mergePersistedState = ReduxLocalStorage.mergePersistedState
+
+ const actionTypes: ReduxLocalStorage.ActionTypes
+
+ export type StorageAdapterEnhancer = ReduxLocalStorage.StorageAdapterEnhancer
+
+ export {
+ mergePersistedState,
+ actionTypes
+ }
+
+ export default ReduxLocalStorage.persistState
+}
+
+