Added typings for when that afford promise type objects being passed in and mixes of different types.