No, type returned is not guaranteed. The Store will return the new state, however middleware can wrap the dispatch function and return anything. Reduxkotlin uses Any as return value to allow this. There are JS middleware and store enhancers that return types other than the state