package androidx.lifecycle {

  public class AndroidViewModel extends androidx.lifecycle.ViewModel {
    ctor public AndroidViewModel(android.app.Application);
    method public <T extends android.app.Application> T getApplication();
  }

  public abstract class ViewModel {
    ctor public ViewModel();
    method protected void onCleared();
  }

  public class ViewModelProvider {
    ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner, androidx.lifecycle.ViewModelProvider.Factory);
    ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore, androidx.lifecycle.ViewModelProvider.Factory);
    method public <T extends androidx.lifecycle.ViewModel> T get(java.lang.Class<T>);
    method public <T extends androidx.lifecycle.ViewModel> T get(java.lang.String, java.lang.Class<T>);
  }

  public static class ViewModelProvider.AndroidViewModelFactory extends androidx.lifecycle.ViewModelProvider.NewInstanceFactory {
    ctor public ViewModelProvider.AndroidViewModelFactory(android.app.Application);
    method public static androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application);
  }

  public static abstract interface ViewModelProvider.Factory {
    method public abstract <T extends androidx.lifecycle.ViewModel> T create(java.lang.Class<T>);
  }

  public static class ViewModelProvider.NewInstanceFactory implements androidx.lifecycle.ViewModelProvider.Factory {
    ctor public ViewModelProvider.NewInstanceFactory();
    method public <T extends androidx.lifecycle.ViewModel> T create(java.lang.Class<T>);
  }

  public class ViewModelStore {
    ctor public ViewModelStore();
    method public final void clear();
  }

  public abstract interface ViewModelStoreOwner {
    method public abstract androidx.lifecycle.ViewModelStore getViewModelStore();
  }

}

