// Signature format: 3.0
package androidx.compose.dispatch {

  public final class ActualAndroidKt {
    method public static androidx.compose.dispatch.MonotonicFrameClock getDefaultMonotonicFrameClock();
  }

  public final class AndroidUiDispatcher extends kotlinx.coroutines.CoroutineDispatcher {
    method public void dispatch(kotlin.coroutines.CoroutineContext context, Runnable block);
    method public android.view.Choreographer getChoreographer();
    method public androidx.compose.dispatch.MonotonicFrameClock getFrameClock();
    property public final androidx.compose.dispatch.MonotonicFrameClock frameClock;
    field public static final androidx.compose.dispatch.AndroidUiDispatcher.Companion Companion;
  }

  public static final class AndroidUiDispatcher.Companion {
    method public kotlin.coroutines.CoroutineContext getCurrentThread();
    method public kotlin.coroutines.CoroutineContext getMain();
    property public final kotlin.coroutines.CoroutineContext CurrentThread;
    property public final kotlin.coroutines.CoroutineContext Main;
  }

  public final class AndroidUiDispatcherKt {
  }

  public final class AndroidUiFrameClock implements androidx.compose.dispatch.MonotonicFrameClock {
    ctor public AndroidUiFrameClock(android.view.Choreographer choreographer);
    method public android.view.Choreographer getChoreographer();
    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R> p);
  }

  public interface MonotonicFrameClock extends kotlin.coroutines.CoroutineContext.Element {
    method public default kotlin.coroutines.CoroutineContext.Key<?> getKey();
    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R> p);
    property public default kotlin.coroutines.CoroutineContext.Key<?> key;
    field public static final androidx.compose.dispatch.MonotonicFrameClock.Key Key;
  }

  public static final class MonotonicFrameClock.Key implements kotlin.coroutines.CoroutineContext.Key<androidx.compose.dispatch.MonotonicFrameClock> {
  }

  public final class MonotonicFrameClockKt {
    method public static suspend inline <R> Object? withFrameMillis(androidx.compose.dispatch.MonotonicFrameClock, kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R> p);
    method public static suspend <R> Object? withFrameMillis(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R> p);
    method public static suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R> p);
  }

}

