typedef StateInterceptor<T> = SnapState<T>? Function( SnapState<T> currentSnap, SnapState<T> nextSnap);