// Signature format: 4.0
package androidx.lifecycle {

  public abstract class Lifecycle {
    ctor public Lifecycle();
    method @MainThread public abstract void addObserver(androidx.lifecycle.LifecycleObserver);
    method @MainThread public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
    method @MainThread public abstract void removeObserver(androidx.lifecycle.LifecycleObserver);
  }

  public enum Lifecycle.Event {
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_ANY;
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_CREATE;
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_DESTROY;
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_PAUSE;
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_RESUME;
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_START;
    enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_STOP;
  }

  public enum Lifecycle.State {
    method public boolean isAtLeast(androidx.lifecycle.Lifecycle.State);
    enum_constant public static final androidx.lifecycle.Lifecycle.State CREATED;
    enum_constant public static final androidx.lifecycle.Lifecycle.State DESTROYED;
    enum_constant public static final androidx.lifecycle.Lifecycle.State INITIALIZED;
    enum_constant public static final androidx.lifecycle.Lifecycle.State RESUMED;
    enum_constant public static final androidx.lifecycle.Lifecycle.State STARTED;
  }

  public interface LifecycleObserver {
  }

  public interface LifecycleOwner {
    method public androidx.lifecycle.Lifecycle getLifecycle();
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface OnLifecycleEvent {
    method public abstract androidx.lifecycle.Lifecycle.Event value();
  }

}

