// Signature format: 4.0
package androidx.lifecycle {

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class ComputableLiveData<T> {
    ctor public ComputableLiveData();
    ctor public ComputableLiveData(optional java.util.concurrent.Executor executor);
    method @WorkerThread protected abstract T! compute();
    method public androidx.lifecycle.LiveData<T> getLiveData();
    method public void invalidate();
    property public androidx.lifecycle.LiveData<T> liveData;
  }

  public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData<T> {
    ctor public MediatorLiveData();
    ctor public MediatorLiveData(T!);
    method @MainThread public <S> void addSource(androidx.lifecycle.LiveData<S!>, androidx.lifecycle.Observer<? super S>);
    method @MainThread public <S> void removeSource(androidx.lifecycle.LiveData<S!>);
  }

  public final class Transformations {
    method @CheckResult @MainThread public static <X> androidx.lifecycle.LiveData<X> distinctUntilChanged(androidx.lifecycle.LiveData<X>);
    method @Deprecated @CheckResult @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, androidx.arch.core.util.Function<X,Y> mapFunction);
    method @CheckResult @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<X,Y> transform);
    method @Deprecated @CheckResult @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, androidx.arch.core.util.Function<X,androidx.lifecycle.LiveData<Y>> switchMapFunction);
    method @CheckResult @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<X,androidx.lifecycle.LiveData<Y>> transform);
  }

}

