// Signature format: 3.0
package androidx.concurrent.callback {

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class AbstractResolvableFuture<V> implements androidx.concurrent.ListenableFuture<V> {
    ctor protected AbstractResolvableFuture();
    method public final void addListener(Runnable!, java.util.concurrent.Executor!);
    method protected void afterDone();
    method public final boolean cancel(boolean);
    method public final V! get(long, java.util.concurrent.TimeUnit!) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
    method public final V! get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
    method protected void interruptTask();
    method public final boolean isCancelled();
    method public final boolean isDone();
    method protected String? pendingToString();
    method protected boolean set(V?);
    method protected boolean setException(Throwable!);
    method protected boolean setFuture(androidx.concurrent.ListenableFuture<? extends V>!);
    method protected final boolean wasInterrupted();
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class ResolvableFuture<V> extends androidx.concurrent.callback.AbstractResolvableFuture<V> {
    method public static <V> androidx.concurrent.callback.ResolvableFuture<V!>! create();
    method public boolean set(V?);
    method public boolean setException(Throwable!);
    method public boolean setFuture(androidx.concurrent.ListenableFuture<? extends V>!);
  }

}

