// Signature format: 4.0
package androidx.lifecycle {

  public interface DefaultLifecycleObserver extends androidx.lifecycle.LifecycleObserver {
    method public default void onCreate(androidx.lifecycle.LifecycleOwner owner);
    method public default void onDestroy(androidx.lifecycle.LifecycleOwner owner);
    method public default void onPause(androidx.lifecycle.LifecycleOwner owner);
    method public default void onResume(androidx.lifecycle.LifecycleOwner owner);
    method public default void onStart(androidx.lifecycle.LifecycleOwner owner);
    method public default void onStop(androidx.lifecycle.LifecycleOwner owner);
  }

  public abstract class Lifecycle {
    ctor public Lifecycle();
    method @MainThread public abstract void addObserver(androidx.lifecycle.LifecycleObserver observer);
    method @MainThread public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
    method public kotlinx.coroutines.flow.StateFlow<androidx.lifecycle.Lifecycle.State> getCurrentStateFlow();
    method @MainThread public abstract void removeObserver(androidx.lifecycle.LifecycleObserver observer);
    property @MainThread public abstract androidx.lifecycle.Lifecycle.State currentState;
    property public kotlinx.coroutines.flow.StateFlow<androidx.lifecycle.Lifecycle.State> currentStateFlow;
  }

  public enum Lifecycle.Event {
    method public static androidx.lifecycle.Lifecycle.Event? downFrom(androidx.lifecycle.Lifecycle.State state);
    method public static androidx.lifecycle.Lifecycle.Event? downTo(androidx.lifecycle.Lifecycle.State state);
    method public androidx.lifecycle.Lifecycle.State getTargetState();
    method public static androidx.lifecycle.Lifecycle.Event? upFrom(androidx.lifecycle.Lifecycle.State state);
    method public static androidx.lifecycle.Lifecycle.Event? upTo(androidx.lifecycle.Lifecycle.State state);
    property public final androidx.lifecycle.Lifecycle.State targetState;
    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;
    field public static final androidx.lifecycle.Lifecycle.Event.Companion Companion;
  }

  public static final class Lifecycle.Event.Companion {
    method public androidx.lifecycle.Lifecycle.Event? downFrom(androidx.lifecycle.Lifecycle.State state);
    method public androidx.lifecycle.Lifecycle.Event? downTo(androidx.lifecycle.Lifecycle.State state);
    method public androidx.lifecycle.Lifecycle.Event? upFrom(androidx.lifecycle.Lifecycle.State state);
    method public androidx.lifecycle.Lifecycle.Event? upTo(androidx.lifecycle.Lifecycle.State state);
  }

  public enum Lifecycle.State {
    method public boolean isAtLeast(androidx.lifecycle.Lifecycle.State 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 abstract class LifecycleCoroutineScope implements kotlinx.coroutines.CoroutineScope {
    method @Deprecated public final kotlinx.coroutines.Job launchWhenCreated(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
    method @Deprecated public final kotlinx.coroutines.Job launchWhenResumed(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
    method @Deprecated public final kotlinx.coroutines.Job launchWhenStarted(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
  }

  public fun interface LifecycleEventObserver extends androidx.lifecycle.LifecycleObserver {
    method public void onStateChanged(androidx.lifecycle.LifecycleOwner source, androidx.lifecycle.Lifecycle.Event event);
  }

  public final class LifecycleKt {
    method public static androidx.lifecycle.LifecycleCoroutineScope getCoroutineScope(androidx.lifecycle.Lifecycle);
    method public static kotlinx.coroutines.flow.Flow<androidx.lifecycle.Lifecycle.Event> getEventFlow(androidx.lifecycle.Lifecycle);
  }

  public interface LifecycleObserver {
  }

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

  public final class LifecycleOwnerKt {
    method public static androidx.lifecycle.LifecycleCoroutineScope getLifecycleScope(androidx.lifecycle.LifecycleOwner);
  }

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

  public final class PausingDispatcherKt {
    method @Deprecated public static suspend <T> Object? whenCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
    method @Deprecated public static suspend <T> Object? whenCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
    method @Deprecated public static suspend <T> Object? whenResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
    method @Deprecated public static suspend <T> Object? whenResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
    method @Deprecated public static suspend <T> Object? whenStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
    method @Deprecated public static suspend <T> Object? whenStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
    method @Deprecated public static suspend <T> Object? whenStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State minState, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
  }

}

