declare type Dispatch = (action: Action) => void; interface Store { getState: () => State; dispatch: Dispatch; } declare type Middleware = (store: Store) => (next: Dispatch) => (action: Action) => void; declare const createReducer: (...middlewares: Middleware[]) => (reducer: (state: State, action: Action) => State, initialState: State, initializer?: (value: State) => State) => [State, Dispatch]; export default createReducer;