// Signature format: 2.0
package com.google.cloud.firestore {

  public abstract class AggregateField {
    ctor public AggregateField();
    method @NonNull public static com.google.cloud.firestore.AggregateField.AverageAggregateField average(@NonNull com.google.cloud.firestore.FieldPath);
    method @NonNull public static com.google.cloud.firestore.AggregateField.AverageAggregateField average(@NonNull String);
    method @NonNull public static com.google.cloud.firestore.AggregateField.CountAggregateField count();
    method public boolean equals(Object);
    method public int hashCode();
    method @NonNull public static com.google.cloud.firestore.AggregateField.SumAggregateField sum(@NonNull com.google.cloud.firestore.FieldPath);
    method @NonNull public static com.google.cloud.firestore.AggregateField.SumAggregateField sum(@NonNull String);
  }

  public static class AggregateField.AverageAggregateField extends com.google.cloud.firestore.AggregateField {
    method @NonNull public String getOperator();
  }

  public static class AggregateField.CountAggregateField extends com.google.cloud.firestore.AggregateField {
    method @NonNull public String getOperator();
  }

  public static class AggregateField.SumAggregateField extends com.google.cloud.firestore.AggregateField {
    method @NonNull public String getOperator();
  }

  @com.google.api.core.InternalExtensionOnly public class AggregateQuery {
    method public boolean equals(Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.ExplainResults<com.google.cloud.firestore.AggregateQuerySnapshot>> explain(com.google.cloud.firestore.ExplainOptions);
    method @NonNull public static com.google.cloud.firestore.AggregateQuery fromProto(com.google.cloud.firestore.Firestore, com.google.firestore.v1.RunAggregationQueryRequest);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.AggregateQuerySnapshot> get();
    method @NonNull public com.google.cloud.firestore.Query getQuery();
    method public int hashCode();
    method @NonNull public com.google.firestore.v1.RunAggregationQueryRequest toProto();
  }

  @com.google.api.core.InternalExtensionOnly public class AggregateQuerySnapshot {
    method public boolean equals(Object);
    method @Nullable public Object get(@NonNull com.google.cloud.firestore.AggregateField);
    method @Nullable public Double get(@NonNull com.google.cloud.firestore.AggregateField.AverageAggregateField);
    method public long get(@NonNull com.google.cloud.firestore.AggregateField.CountAggregateField);
    method public long getCount();
    method @Nullable public Double getDouble(@NonNull com.google.cloud.firestore.AggregateField);
    method @Nullable public Long getLong(@NonNull com.google.cloud.firestore.AggregateField);
    method @NonNull public com.google.cloud.firestore.AggregateQuery getQuery();
    method @NonNull public com.google.cloud.Timestamp getReadTime();
    method public int hashCode();
  }

  public abstract class BasePath<B extends com.google.cloud.firestore.BasePath<B>> {
    ctor public BasePath();
    method public int compareTo(@NonNull B);
  }

  public final class Blob {
    method public boolean equals(Object);
    method @NonNull public static com.google.cloud.firestore.Blob fromByteString(@NonNull com.google.protobuf.ByteString);
    method @NonNull public static com.google.cloud.firestore.Blob fromBytes(@NonNull byte[]);
    method public int hashCode();
    method @NonNull public com.google.protobuf.ByteString toByteString();
    method @NonNull public byte[] toBytes();
  }

  public final class BulkWriter {
    method public void addWriteErrorListener(com.google.cloud.firestore.BulkWriter.WriteErrorCallback);
    method public void addWriteErrorListener(@NonNull Executor, com.google.cloud.firestore.BulkWriter.WriteErrorCallback);
    method public void addWriteResultListener(com.google.cloud.firestore.BulkWriter.WriteResultCallback);
    method public void addWriteResultListener(@NonNull Executor, com.google.cloud.firestore.BulkWriter.WriteResultCallback);
    method public void close();
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> create(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> create(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> delete(@NonNull com.google.cloud.firestore.DocumentReference);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> delete(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.Precondition);
    method @NonNull public com.google.api.core.ApiFuture<Void> flush();
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>, @NonNull com.google.cloud.firestore.SetOptions);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Object, @NonNull com.google.cloud.firestore.SetOptions);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.FieldPath, @Nullable Object, Object...);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.Precondition, @NonNull com.google.cloud.firestore.FieldPath, @Nullable Object, Object...);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.Precondition, @NonNull String, @Nullable Object, Object...);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>, @NonNull com.google.cloud.firestore.Precondition);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull String, @Nullable Object, Object...);
    field public static final int MAX_BATCH_SIZE = 20; // 0x14
    field public static final int MAX_RETRY_ATTEMPTS = 10; // 0xa
    field public static final int RETRY_MAX_BATCH_SIZE = 10; // 0xa
  }

  public static interface BulkWriter.WriteErrorCallback {
    method public boolean onError(com.google.cloud.firestore.BulkWriterException);
  }

  public static interface BulkWriter.WriteResultCallback {
    method public void onResult(com.google.cloud.firestore.DocumentReference, com.google.cloud.firestore.WriteResult);
  }

  public final class BulkWriterException extends com.google.cloud.firestore.FirestoreException {
    ctor public BulkWriterException(io.grpc.Status, String, com.google.cloud.firestore.DocumentReference, com.google.cloud.firestore.BulkWriter.OperationType, int);
    method public com.google.cloud.firestore.DocumentReference getDocumentReference();
    method public int getFailedAttempts();
    method public String getMessage();
    method public com.google.cloud.firestore.BulkWriter.OperationType getOperationType();
  }

  @com.google.auto.value.AutoValue public abstract class BulkWriterOptions {
    ctor public BulkWriterOptions();
    method public static com.google.cloud.firestore.BulkWriterOptions.Builder builder();
    method @Nullable public abstract ScheduledExecutorService getExecutor();
    method @Nullable public abstract Double getInitialOpsPerSecond();
    method @Nullable public abstract Double getMaxOpsPerSecond();
    method public abstract boolean getThrottlingEnabled();
    method public abstract com.google.cloud.firestore.BulkWriterOptions.Builder toBuilder();
  }

  @com.google.auto.value.AutoValue.Builder public abstract static class BulkWriterOptions.Builder {
    ctor public BulkWriterOptions.Builder();
    method public abstract com.google.cloud.firestore.BulkWriterOptions autoBuild();
    method @NonNull public com.google.cloud.firestore.BulkWriterOptions build();
    method public abstract com.google.cloud.firestore.BulkWriterOptions.Builder setExecutor(@Nullable ScheduledExecutorService);
    method public com.google.cloud.firestore.BulkWriterOptions.Builder setInitialOpsPerSecond(int);
    method public com.google.cloud.firestore.BulkWriterOptions.Builder setMaxOpsPerSecond(int);
    method public abstract com.google.cloud.firestore.BulkWriterOptions.Builder setThrottlingEnabled(boolean);
  }

  public class CollectionGroup extends com.google.cloud.firestore.Query {
    method public com.google.api.core.ApiFuture<List<com.google.cloud.firestore.QueryPartition>> getPartitions(long);
    method @Deprecated public void getPartitions(long, com.google.api.gax.rpc.ApiStreamObserver<com.google.cloud.firestore.QueryPartition>);
  }

  @com.google.api.core.InternalExtensionOnly public class CollectionReference extends com.google.cloud.firestore.Query {
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.DocumentReference> add(@NonNull Map<String,Object>);
    method public com.google.api.core.ApiFuture<com.google.cloud.firestore.DocumentReference> add(Object);
    method @NonNull public com.google.cloud.firestore.DocumentReference document();
    method @NonNull public com.google.cloud.firestore.DocumentReference document(@NonNull String);
    method @NonNull public String getId();
    method @Nullable public com.google.cloud.firestore.DocumentReference getParent();
    method @NonNull public String getPath();
    method @NonNull public Iterable<com.google.cloud.firestore.DocumentReference> listDocuments();
  }

  public class DocumentChange {
    method public boolean equals(Object);
    method @NonNull public com.google.cloud.firestore.QueryDocumentSnapshot getDocument();
    method public int getNewIndex();
    method public int getOldIndex();
    method @NonNull public com.google.cloud.firestore.DocumentChange.Type getType();
    method public int hashCode();
    method public String toString();
  }

  public enum DocumentChange.Type {
    enum_constant public static final com.google.cloud.firestore.DocumentChange.Type ADDED;
    enum_constant public static final com.google.cloud.firestore.DocumentChange.Type MODIFIED;
    enum_constant public static final com.google.cloud.firestore.DocumentChange.Type REMOVED;
  }

  @com.google.api.core.InternalExtensionOnly public class DocumentReference {
    method @NonNull public com.google.cloud.firestore.ListenerRegistration addSnapshotListener(@NonNull com.google.cloud.firestore.EventListener<com.google.cloud.firestore.DocumentSnapshot>);
    method @NonNull public com.google.cloud.firestore.ListenerRegistration addSnapshotListener(@NonNull Executor, @NonNull com.google.cloud.firestore.EventListener<com.google.cloud.firestore.DocumentSnapshot>);
    method @NonNull public com.google.cloud.firestore.CollectionReference collection(@NonNull String);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> create(@NonNull Map<String,Object>);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> create(@NonNull Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> delete();
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> delete(@NonNull com.google.cloud.firestore.Precondition);
    method public boolean equals(Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.DocumentSnapshot> get();
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.DocumentSnapshot> get(com.google.cloud.firestore.FieldMask);
    method @NonNull public com.google.cloud.firestore.Firestore getFirestore();
    method @NonNull public String getId();
    method @NonNull public com.google.cloud.firestore.CollectionReference getParent();
    method @NonNull public String getPath();
    method public int hashCode();
    method @NonNull public Iterable<com.google.cloud.firestore.CollectionReference> listCollections();
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull Map<String,Object>);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull Map<String,Object>, @NonNull com.google.cloud.firestore.SetOptions);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> set(@NonNull Object, @NonNull com.google.cloud.firestore.SetOptions);
    method public String toString();
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object, Object...);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.Precondition, @NonNull com.google.cloud.firestore.FieldPath, @Nullable Object, Object...);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull com.google.cloud.firestore.Precondition, @NonNull String, @Nullable Object, Object...);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull Map<String,Object>);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull Map<String,Object>, com.google.cloud.firestore.Precondition);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.WriteResult> update(@NonNull String, @Nullable Object, Object...);
  }

  @com.google.api.core.InternalExtensionOnly public class DocumentSnapshot {
    method public boolean contains(@NonNull com.google.cloud.firestore.FieldPath);
    method public boolean contains(@NonNull String);
    method public boolean equals(Object);
    method public boolean exists();
    method @Nullable public Object get(@NonNull com.google.cloud.firestore.FieldPath);
    method @Nullable public <T> T get(@NonNull com.google.cloud.firestore.FieldPath, Class<T>);
    method @Nullable public Object get(@NonNull String);
    method @Nullable public <T> T get(@NonNull String, @NonNull Class<T>);
    method @Nullable public com.google.cloud.firestore.Blob getBlob(@NonNull String);
    method @Nullable public Boolean getBoolean(@NonNull String);
    method @Nullable public com.google.cloud.Timestamp getCreateTime();
    method @Nullable public Map<String,Object> getData();
    method @Nullable public Date getDate(@NonNull String);
    method @Nullable public Double getDouble(@NonNull String);
    method @Nullable public com.google.cloud.firestore.GeoPoint getGeoPoint(@NonNull String);
    method @NonNull public String getId();
    method @Nullable public Long getLong(@NonNull String);
    method @Nullable public com.google.cloud.Timestamp getReadTime();
    method @NonNull public com.google.cloud.firestore.DocumentReference getReference();
    method @Nullable public String getString(@NonNull String);
    method @Nullable public com.google.cloud.Timestamp getTimestamp(@NonNull String);
    method @Nullable public com.google.cloud.Timestamp getUpdateTime();
    method @Nullable public com.google.cloud.firestore.VectorValue getVectorValue(@NonNull String);
    method public int hashCode();
    method @Nullable public <T> T toObject(@NonNull Class<T>);
    method public String toString();
  }

  public interface EventListener<T> {
    method public void onEvent(@Nullable T, @Nullable com.google.cloud.firestore.FirestoreException);
  }

  public final class ExecutionStats {
    method @NonNull public Map<String,Object> getDebugStats();
    method @NonNull public Duration getExecutionDuration();
    method public long getReadOperations();
    method public long getResultsReturned();
  }

  public final class ExplainMetrics {
    method @Nullable public com.google.cloud.firestore.ExecutionStats getExecutionStats();
    method @NonNull public com.google.cloud.firestore.PlanSummary getPlanSummary();
  }

  @com.google.auto.value.AutoValue public abstract class ExplainOptions {
    ctor public ExplainOptions();
    method public static com.google.cloud.firestore.ExplainOptions.Builder builder();
    method public abstract boolean getAnalyze();
    method public abstract com.google.cloud.firestore.ExplainOptions.Builder toBuilder();
    method public com.google.firestore.v1.ExplainOptions toProto();
  }

  @com.google.auto.value.AutoValue.Builder public abstract static class ExplainOptions.Builder {
    ctor public ExplainOptions.Builder();
    method public abstract com.google.cloud.firestore.ExplainOptions build();
    method public abstract com.google.cloud.firestore.ExplainOptions.Builder setAnalyze(boolean);
  }

  public final class ExplainResults<T> {
    method @NonNull public com.google.cloud.firestore.ExplainMetrics getMetrics();
    method @Nullable public T getSnapshot();
  }

  @com.google.api.core.BetaApi public final class ExplainStats {
    method @NonNull public com.google.protobuf.Any getRawData();
    method @NonNull public String getText();
  }

  public final class FieldMask {
    method @NonNull public static com.google.cloud.firestore.FieldMask of(com.google.cloud.firestore.FieldPath...);
    method @NonNull public static com.google.cloud.firestore.FieldMask of(String...);
  }

  @com.google.auto.value.AutoValue public abstract class FieldPath extends com.google.cloud.firestore.BasePath<com.google.cloud.firestore.FieldPath> {
    ctor public FieldPath();
    method public static com.google.cloud.firestore.FieldPath documentId();
    method @com.google.api.core.InternalApi public static com.google.cloud.firestore.FieldPath fromDotSeparatedString(String);
    method public static com.google.cloud.firestore.FieldPath fromServerFormat(String);
    method public static com.google.cloud.firestore.FieldPath of(@NonNull String...);
    method public String toString();
  }

  public abstract class FieldValue {
    method @NonNull public static com.google.cloud.firestore.FieldValue arrayRemove(@NonNull Object...);
    method @NonNull public static com.google.cloud.firestore.FieldValue arrayUnion(@NonNull Object...);
    method @NonNull public static com.google.cloud.firestore.FieldValue delete();
    method public boolean equals(Object);
    method public int hashCode();
    method @NonNull public static com.google.cloud.firestore.FieldValue increment(double);
    method @NonNull public static com.google.cloud.firestore.FieldValue increment(long);
    method @NonNull public static com.google.cloud.firestore.FieldValue serverTimestamp();
    method @NonNull public static com.google.cloud.firestore.VectorValue vector(@NonNull double[]);
  }

  public class Filter {
    ctor public Filter();
    method @NonNull public static com.google.cloud.firestore.Filter and(com.google.cloud.firestore.Filter...);
    method @NonNull public static com.google.cloud.firestore.Filter arrayContains(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter arrayContains(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter arrayContainsAny(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter arrayContainsAny(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter equalTo(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter equalTo(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter greaterThan(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter greaterThan(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter greaterThanOrEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter greaterThanOrEqualTo(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter inArray(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter inArray(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter lessThan(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter lessThan(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter lessThanOrEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter lessThanOrEqualTo(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter notEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter notEqualTo(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter notInArray(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter notInArray(@NonNull String, @Nullable Object);
    method @NonNull public static com.google.cloud.firestore.Filter or(com.google.cloud.firestore.Filter...);
  }

  @com.google.api.core.InternalExtensionOnly public interface Firestore extends com.google.cloud.Service<com.google.cloud.firestore.FirestoreOptions> {
    method @NonNull public com.google.cloud.firestore.WriteBatch batch();
    method @NonNull public com.google.cloud.firestore.BulkWriter bulkWriter();
    method @NonNull public com.google.cloud.firestore.BulkWriter bulkWriter(com.google.cloud.firestore.BulkWriterOptions);
    method @NonNull public com.google.cloud.firestore.FirestoreBundle.Builder bundleBuilder();
    method @NonNull public com.google.cloud.firestore.FirestoreBundle.Builder bundleBuilder(@NonNull String);
    method public void close();
    method @NonNull public com.google.cloud.firestore.CollectionReference collection(@NonNull String);
    method public com.google.cloud.firestore.CollectionGroup collectionGroup(@NonNull String);
    method @NonNull public com.google.cloud.firestore.DocumentReference document(@NonNull String);
    method @NonNull public com.google.api.core.ApiFuture<List<com.google.cloud.firestore.DocumentSnapshot>> getAll(@NonNull com.google.cloud.firestore.DocumentReference...);
    method @NonNull public com.google.api.core.ApiFuture<List<com.google.cloud.firestore.DocumentSnapshot>> getAll(@NonNull com.google.cloud.firestore.DocumentReference[], @Nullable com.google.cloud.firestore.FieldMask);
    method public void getAll(@NonNull com.google.cloud.firestore.DocumentReference[], @Nullable com.google.cloud.firestore.FieldMask, com.google.api.gax.rpc.ApiStreamObserver<com.google.cloud.firestore.DocumentSnapshot>);
    method @NonNull public Iterable<com.google.cloud.firestore.CollectionReference> listCollections();
    method public com.google.cloud.firestore.PipelineSource pipeline();
    method @NonNull @com.google.api.core.BetaApi public com.google.api.core.ApiFuture<Void> recursiveDelete(com.google.cloud.firestore.CollectionReference);
    method @NonNull @com.google.api.core.BetaApi public com.google.api.core.ApiFuture<Void> recursiveDelete(com.google.cloud.firestore.CollectionReference, com.google.cloud.firestore.BulkWriter);
    method @NonNull @com.google.api.core.BetaApi public com.google.api.core.ApiFuture<Void> recursiveDelete(com.google.cloud.firestore.DocumentReference);
    method @NonNull @com.google.api.core.BetaApi public com.google.api.core.ApiFuture<Void> recursiveDelete(com.google.cloud.firestore.DocumentReference, com.google.cloud.firestore.BulkWriter);
    method @NonNull public <T> com.google.api.core.ApiFuture<T> runAsyncTransaction(@NonNull com.google.cloud.firestore.Transaction.AsyncFunction<T>);
    method @NonNull public <T> com.google.api.core.ApiFuture<T> runAsyncTransaction(@NonNull com.google.cloud.firestore.Transaction.AsyncFunction<T>, @NonNull com.google.cloud.firestore.TransactionOptions);
    method @NonNull public <T> com.google.api.core.ApiFuture<T> runTransaction(@NonNull com.google.cloud.firestore.Transaction.Function<T>);
    method @NonNull public <T> com.google.api.core.ApiFuture<T> runTransaction(@NonNull com.google.cloud.firestore.Transaction.Function<T>, @NonNull com.google.cloud.firestore.TransactionOptions);
    method public void shutdown();
    method public void shutdownNow();
  }

  public final class FirestoreBundle {
    method public ByteBuffer toByteBuffer();
  }

  public static final class FirestoreBundle.Builder {
    method public com.google.cloud.firestore.FirestoreBundle.Builder add(com.google.cloud.firestore.DocumentSnapshot);
    method public com.google.cloud.firestore.FirestoreBundle.Builder add(String, com.google.cloud.firestore.QuerySnapshot);
    method public com.google.cloud.firestore.FirestoreBundle build();
    method public String getId();
  }

  public class FirestoreException extends com.google.cloud.grpc.BaseGrpcServiceException {
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.FirestoreException forApiException(com.google.api.gax.rpc.ApiException);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.FirestoreException forApiException(com.google.api.gax.rpc.ApiException, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.FirestoreException forIOException(IOException, boolean);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.FirestoreException forInvalidArgument(String, Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.FirestoreException forServerRejection(io.grpc.Status, String, Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.FirestoreException forServerRejection(io.grpc.Status, @Nullable Throwable, String, Object...);
    method @Nullable @com.google.api.core.BetaApi public io.grpc.Status getStatus();
  }

  public interface FirestoreFactory extends com.google.cloud.ServiceFactory<com.google.cloud.firestore.Firestore,com.google.cloud.firestore.FirestoreOptions> {
  }

  @com.google.api.core.BetaApi public class FirestoreOpenTelemetryOptions {
    method public boolean exportBuiltinMetricsToGoogleCloudMonitoring();
    method public io.opentelemetry.api.OpenTelemetry getOpenTelemetry();
    method @NonNull public static com.google.cloud.firestore.FirestoreOpenTelemetryOptions.Builder newBuilder();
    method @NonNull public com.google.cloud.firestore.FirestoreOpenTelemetryOptions.Builder toBuilder();
  }

  public static class FirestoreOpenTelemetryOptions.Builder {
    method @NonNull public com.google.cloud.firestore.FirestoreOpenTelemetryOptions build();
    method @NonNull public com.google.cloud.firestore.FirestoreOpenTelemetryOptions.Builder setOpenTelemetry(@NonNull io.opentelemetry.api.OpenTelemetry);
  }

  public final class FirestoreOptions extends com.google.cloud.ServiceOptions<com.google.cloud.firestore.Firestore,com.google.cloud.firestore.FirestoreOptions> {
    ctor @com.google.api.core.InternalApi("This class should only be extended within google-cloud-java") protected FirestoreOptions(com.google.cloud.firestore.FirestoreOptions.Builder);
    method public boolean equals(Object);
    method public com.google.api.gax.core.CredentialsProvider getCredentialsProvider();
    method public String getDatabaseId();
    method @NonNull public static com.google.api.gax.core.GoogleCredentialsProvider.Builder getDefaultCredentialsProviderBuilder();
    method protected String getDefaultHost();
    method public static com.google.cloud.firestore.FirestoreOptions getDefaultInstance();
    method @NonNull public static com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.Builder getDefaultTransportChannelProviderBuilder();
    method @NonNull public static com.google.cloud.grpc.GrpcTransportOptions.Builder getDefaultTransportOptionsBuilder();
    method public String getEmulatorHost();
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.FirestoreOpenTelemetryOptions getOpenTelemetryOptions();
    method protected Set<String> getScopes();
    method public com.google.api.gax.rpc.TransportChannelProvider getTransportChannelProvider();
    method public int hashCode();
    method @NonNull public static com.google.cloud.firestore.FirestoreOptions.Builder newBuilder();
    method @NonNull public com.google.cloud.firestore.FirestoreOptions.Builder toBuilder();
  }

  public static class FirestoreOptions.Builder extends com.google.cloud.ServiceOptions.Builder<com.google.cloud.firestore.Firestore,com.google.cloud.firestore.FirestoreOptions,com.google.cloud.firestore.FirestoreOptions.Builder> {
    method @NonNull public com.google.cloud.firestore.FirestoreOptions build();
    method @NonNull public com.google.cloud.firestore.FirestoreOptions.Builder setChannelProvider(@NonNull com.google.api.gax.rpc.TransportChannelProvider);
    method @NonNull public com.google.cloud.firestore.FirestoreOptions.Builder setCredentialsProvider(@NonNull com.google.api.gax.core.CredentialsProvider);
    method public com.google.cloud.firestore.FirestoreOptions.Builder setDatabaseId(@NonNull String);
    method public com.google.cloud.firestore.FirestoreOptions.Builder setEmulatorHost(@NonNull String);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.FirestoreOptions.Builder setOpenTelemetryOptions(@NonNull com.google.cloud.firestore.FirestoreOpenTelemetryOptions);
    method @NonNull public com.google.cloud.firestore.FirestoreOptions.Builder setTransportOptions(@NonNull com.google.cloud.TransportOptions);
  }

  public static class FirestoreOptions.DefaultFirestoreFactory implements com.google.cloud.firestore.FirestoreFactory {
    ctor public FirestoreOptions.DefaultFirestoreFactory();
    method @NonNull public com.google.cloud.firestore.Firestore create(@NonNull com.google.cloud.firestore.FirestoreOptions);
  }

  public static class FirestoreOptions.DefaultFirestoreRpcFactory implements com.google.cloud.firestore.FirestoreRpcFactory {
    ctor public FirestoreOptions.DefaultFirestoreRpcFactory();
    method @NonNull public com.google.cloud.firestore.spi.v1.FirestoreRpc create(@NonNull com.google.cloud.firestore.FirestoreOptions);
  }

  public static class FirestoreOptions.EmulatorCredentials extends com.google.auth.Credentials {
    ctor public FirestoreOptions.EmulatorCredentials();
    method public String getAuthenticationType();
    method public Map<String,List<String>> getRequestMetadata(URI);
    method public boolean hasRequestMetadata();
    method public boolean hasRequestMetadataOnly();
    method public void refresh();
  }

  public interface FirestoreRpcFactory extends com.google.cloud.spi.ServiceRpcFactory<com.google.cloud.firestore.FirestoreOptions> {
  }

  public abstract class GenericQuerySnapshot<QueryT> {
    ctor protected GenericQuerySnapshot(QueryT, com.google.cloud.Timestamp, @NonNull List<com.google.cloud.firestore.QueryDocumentSnapshot>, List<com.google.cloud.firestore.DocumentChange>);
    method public boolean equals(Object);
    method @NonNull public List<com.google.cloud.firestore.DocumentChange> getDocumentChanges();
    method @NonNull public List<com.google.cloud.firestore.QueryDocumentSnapshot> getDocuments();
    method @NonNull public QueryT getQuery();
    method @NonNull public com.google.cloud.Timestamp getReadTime();
    method public int hashCode();
    method public boolean isEmpty();
    method @NonNull public Iterator<com.google.cloud.firestore.QueryDocumentSnapshot> iterator();
    method public int size();
    method @NonNull public <T> List<T> toObjects(@NonNull Class<T>);
    method public String toString();
    field protected final QueryT query;
    field protected final com.google.cloud.Timestamp readTime;
  }

  public class GeoPoint {
    ctor public GeoPoint(double, double);
    method public boolean equals(Object);
    method public double getLatitude();
    method public double getLongitude();
    method public int hashCode();
    method @NonNull public String toString();
  }

  @com.google.api.core.InternalApi public class Internal {
    ctor @com.google.api.core.InternalApi public Internal(com.google.cloud.firestore.FirestoreImpl);
    ctor @com.google.api.core.InternalApi public Internal(com.google.cloud.firestore.FirestoreOptions, com.google.cloud.firestore.spi.v1.FirestoreRpc);
    method @com.google.api.core.InternalApi public static String autoId();
    method @com.google.api.core.InternalApi public Map<String,com.google.firestore.v1.Value> protoFromSnapshot(com.google.cloud.firestore.DocumentSnapshot);
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.DocumentSnapshot snapshotFromMap(String, Map<String,Object>);
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.DocumentSnapshot snapshotFromObject(String, Object);
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.DocumentSnapshot snapshotFromProto(com.google.cloud.Timestamp, com.google.firestore.v1.Document);
  }

  public interface ListenerRegistration {
    method public void remove();
  }

  @com.google.api.core.BetaApi public final class Pipeline {
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline addFields(com.google.cloud.firestore.pipeline.expressions.Selectable, com.google.cloud.firestore.pipeline.expressions.Selectable...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline aggregate(com.google.cloud.firestore.pipeline.expressions.AliasedAggregate...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline aggregate(com.google.cloud.firestore.pipeline.stages.Aggregate);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline aggregate(com.google.cloud.firestore.pipeline.stages.Aggregate, com.google.cloud.firestore.pipeline.stages.AggregateOptions);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline distinct(com.google.cloud.firestore.pipeline.expressions.Selectable...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline distinct(String...);
    method @com.google.api.core.BetaApi public com.google.api.core.ApiFuture<com.google.cloud.firestore.Pipeline.Snapshot> execute();
    method @com.google.api.core.BetaApi public void execute(com.google.api.gax.rpc.ApiStreamObserver<com.google.cloud.firestore.PipelineResult>);
    method @com.google.api.core.BetaApi public com.google.api.core.ApiFuture<com.google.cloud.firestore.Pipeline.Snapshot> execute(com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline findNearest(com.google.cloud.firestore.pipeline.expressions.Expression, double[], com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure, com.google.cloud.firestore.pipeline.stages.FindNearestOptions);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline findNearest(String, double[], com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure, com.google.cloud.firestore.pipeline.stages.FindNearestOptions);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline limit(int);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline offset(int);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline rawStage(com.google.cloud.firestore.pipeline.stages.RawStage);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline removeFields(com.google.cloud.firestore.pipeline.expressions.Field, com.google.cloud.firestore.pipeline.expressions.Field...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline removeFields(String, String...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline replaceWith(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline replaceWith(String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline sample(com.google.cloud.firestore.pipeline.stages.Sample);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline sample(int);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline select(com.google.cloud.firestore.pipeline.expressions.Selectable, com.google.cloud.firestore.pipeline.expressions.Selectable...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline select(String, String...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline sort(com.google.cloud.firestore.pipeline.expressions.Ordering...);
    method @com.google.api.core.InternalApi public com.google.firestore.v1.Value toProtoValue();
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline union(com.google.cloud.firestore.Pipeline);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline unnest(com.google.cloud.firestore.pipeline.expressions.Selectable);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline unnest(com.google.cloud.firestore.pipeline.expressions.Selectable, com.google.cloud.firestore.pipeline.stages.UnnestOptions);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline unnest(String, String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline unnest(String, String, com.google.cloud.firestore.pipeline.stages.UnnestOptions);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline where(com.google.cloud.firestore.pipeline.expressions.BooleanExpression);
  }

  @com.google.api.core.BetaApi public static final class Pipeline.Snapshot {
    method @NonNull public com.google.cloud.Timestamp getExecutionTime();
    method @Nullable public com.google.cloud.firestore.ExplainStats getExplainStats();
    method @NonNull public List<com.google.cloud.firestore.PipelineResult> getResults();
  }

  @com.google.api.core.BetaApi @com.google.api.core.InternalExtensionOnly public final class PipelineResult {
    method @com.google.api.core.BetaApi public boolean contains(@NonNull com.google.cloud.firestore.FieldPath);
    method @com.google.api.core.BetaApi public boolean contains(@NonNull String);
    method @com.google.api.core.BetaApi public boolean equals(Object);
    method @com.google.api.core.BetaApi public boolean exists();
    method @Nullable @com.google.api.core.BetaApi public Object get(@NonNull com.google.cloud.firestore.FieldPath);
    method @Nullable @com.google.api.core.BetaApi public <T> T get(@NonNull com.google.cloud.firestore.FieldPath, Class<T>);
    method @Nullable @com.google.api.core.BetaApi public Object get(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public <T> T get(@NonNull String, @NonNull Class<T>);
    method @Nullable @com.google.api.core.BetaApi public com.google.cloud.firestore.Blob getBlob(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public Boolean getBoolean(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public com.google.cloud.Timestamp getCreateTime();
    method @NonNull @com.google.api.core.BetaApi public Map<String,Object> getData();
    method @Nullable @com.google.api.core.BetaApi public Date getDate(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public Double getDouble(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public com.google.cloud.Timestamp getExecutionTime();
    method @Nullable @com.google.api.core.BetaApi public com.google.cloud.firestore.GeoPoint getGeoPoint(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public String getId();
    method @Nullable @com.google.api.core.BetaApi public Long getLong(@NonNull String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.DocumentReference getReference();
    method @Nullable @com.google.api.core.BetaApi public String getString(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public com.google.cloud.Timestamp getTimestamp(@NonNull String);
    method @Nullable @com.google.api.core.BetaApi public com.google.cloud.Timestamp getUpdateTime();
    method public int hashCode();
    method public String toString();
  }

  @com.google.api.core.BetaApi public final class PipelineSource {
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline collection(@NonNull com.google.cloud.firestore.CollectionReference);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline collection(@NonNull String);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline collection(@NonNull String, com.google.cloud.firestore.pipeline.stages.CollectionOptions);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline collectionGroup(@NonNull String);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline collectionGroup(@NonNull String, com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline createFrom(com.google.cloud.firestore.AggregateQuery);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline createFrom(com.google.cloud.firestore.Query);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline database();
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline documents(com.google.cloud.firestore.DocumentReference...);
    method @NonNull @com.google.api.core.BetaApi public com.google.cloud.firestore.Pipeline documents(String...);
  }

  @com.google.api.core.InternalApi public class PipelineUtils {
    ctor public PipelineUtils();
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(boolean);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(com.google.cloud.firestore.pipeline.expressions.AggregateFunction);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(double);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(long);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(Map<String,com.google.firestore.v1.Value>);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(Object);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value encodeValue(String);
    method @com.google.api.core.InternalApi public static Map<String,com.google.cloud.firestore.pipeline.expressions.Expression> fieldNamesToMap(String...);
    method @com.google.api.core.InternalApi public static Map<String,com.google.cloud.firestore.pipeline.expressions.Expression> selectablesToMap(com.google.cloud.firestore.pipeline.expressions.Selectable...);
  }

  public final class PlanSummary {
    method @NonNull public List<Map<String,Object>> getIndexesUsed();
  }

  public final class Precondition {
    method public boolean equals(Object);
    method public int hashCode();
    method @NonNull public static com.google.cloud.firestore.Precondition updatedAt(com.google.cloud.Timestamp);
    field public static final com.google.cloud.firestore.Precondition NONE;
  }

  @com.google.api.core.InternalExtensionOnly public class Query extends com.google.cloud.firestore.StreamableQuery<com.google.cloud.firestore.QuerySnapshot> {
    ctor protected Query(com.google.cloud.firestore.FirestoreRpcContext<?>, com.google.cloud.firestore.Query.QueryOptions);
    method @NonNull public com.google.cloud.firestore.ListenerRegistration addSnapshotListener(@NonNull com.google.cloud.firestore.EventListener<com.google.cloud.firestore.QuerySnapshot>);
    method @NonNull public com.google.cloud.firestore.ListenerRegistration addSnapshotListener(@NonNull Executor, @NonNull com.google.cloud.firestore.EventListener<com.google.cloud.firestore.QuerySnapshot>);
    method @NonNull public com.google.cloud.firestore.AggregateQuery aggregate(@NonNull com.google.cloud.firestore.AggregateField, @NonNull com.google.cloud.firestore.AggregateField...);
    method @NonNull public com.google.cloud.firestore.AggregateQuery count();
    method @NonNull public com.google.cloud.firestore.Query endAt(@NonNull com.google.cloud.firestore.DocumentSnapshot);
    method @NonNull public com.google.cloud.firestore.Query endAt(Object...);
    method @NonNull public com.google.cloud.firestore.Query endBefore(@NonNull com.google.cloud.firestore.DocumentSnapshot);
    method @NonNull public com.google.cloud.firestore.Query endBefore(Object...);
    method public boolean equals(Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.ExplainResults<com.google.cloud.firestore.QuerySnapshot>> explain(com.google.cloud.firestore.ExplainOptions);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.ExplainMetrics> explainStream(@NonNull com.google.cloud.firestore.ExplainOptions, @NonNull com.google.api.gax.rpc.ApiStreamObserver<com.google.cloud.firestore.DocumentSnapshot>);
    method public com.google.cloud.firestore.VectorQuery findNearest(com.google.cloud.firestore.FieldPath, com.google.cloud.firestore.VectorValue, int, com.google.cloud.firestore.VectorQuery.DistanceMeasure);
    method public com.google.cloud.firestore.VectorQuery findNearest(com.google.cloud.firestore.FieldPath, com.google.cloud.firestore.VectorValue, int, com.google.cloud.firestore.VectorQuery.DistanceMeasure, com.google.cloud.firestore.VectorQueryOptions);
    method public com.google.cloud.firestore.VectorQuery findNearest(String, double[], int, com.google.cloud.firestore.VectorQuery.DistanceMeasure);
    method public com.google.cloud.firestore.VectorQuery findNearest(String, double[], int, com.google.cloud.firestore.VectorQuery.DistanceMeasure, com.google.cloud.firestore.VectorQueryOptions);
    method public static com.google.cloud.firestore.Query fromProto(com.google.cloud.firestore.Firestore, com.google.firestore.v1.RunQueryRequest);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.QuerySnapshot> get();
    method public int hashCode();
    method @NonNull public com.google.cloud.firestore.Query limit(int);
    method @NonNull public com.google.cloud.firestore.Query limitToLast(int);
    method @NonNull public com.google.cloud.firestore.Query offset(int);
    method @NonNull public com.google.cloud.firestore.Query orderBy(@NonNull com.google.cloud.firestore.FieldPath);
    method @NonNull public com.google.cloud.firestore.Query orderBy(@NonNull com.google.cloud.firestore.FieldPath, @NonNull com.google.cloud.firestore.Query.Direction);
    method @NonNull public com.google.cloud.firestore.Query orderBy(@NonNull String);
    method @NonNull public com.google.cloud.firestore.Query orderBy(@NonNull String, @NonNull com.google.cloud.firestore.Query.Direction);
    method @NonNull public com.google.cloud.firestore.Query select(com.google.cloud.firestore.FieldPath...);
    method @NonNull public com.google.cloud.firestore.Query select(String...);
    method @NonNull public com.google.cloud.firestore.Query startAfter(@NonNull com.google.cloud.firestore.DocumentSnapshot);
    method public com.google.cloud.firestore.Query startAfter(Object...);
    method @NonNull public com.google.cloud.firestore.Query startAt(@NonNull com.google.cloud.firestore.DocumentSnapshot);
    method @NonNull public com.google.cloud.firestore.Query startAt(Object...);
    method public void stream(@NonNull com.google.api.gax.rpc.ApiStreamObserver<com.google.cloud.firestore.DocumentSnapshot>);
    method public com.google.firestore.v1.RunQueryRequest toProto();
    method protected com.google.firestore.v1.RunQueryRequest.Builder toRunQueryRequestBuilder(@Nullable com.google.protobuf.ByteString, @Nullable com.google.cloud.Timestamp, @Nullable com.google.cloud.firestore.ExplainOptions);
    method public com.google.cloud.firestore.Query where(com.google.cloud.firestore.Filter);
    method @NonNull public com.google.cloud.firestore.Query whereArrayContains(@NonNull com.google.cloud.firestore.FieldPath, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereArrayContains(@NonNull String, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereArrayContainsAny(@NonNull com.google.cloud.firestore.FieldPath, @NonNull List<? extends Object>);
    method @NonNull public com.google.cloud.firestore.Query whereArrayContainsAny(@NonNull String, @NonNull List<? extends Object>);
    method @NonNull public com.google.cloud.firestore.Query whereEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public com.google.cloud.firestore.Query whereEqualTo(@NonNull String, @Nullable Object);
    method @NonNull public com.google.cloud.firestore.Query whereGreaterThan(@NonNull com.google.cloud.firestore.FieldPath, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereGreaterThan(@NonNull String, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereGreaterThanOrEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereGreaterThanOrEqualTo(@NonNull String, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereIn(@NonNull com.google.cloud.firestore.FieldPath, @NonNull List<? extends Object>);
    method @NonNull public com.google.cloud.firestore.Query whereIn(@NonNull String, @NonNull List<? extends Object>);
    method @NonNull public com.google.cloud.firestore.Query whereLessThan(@NonNull com.google.cloud.firestore.FieldPath, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereLessThan(@NonNull String, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereLessThanOrEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereLessThanOrEqualTo(@NonNull String, @NonNull Object);
    method @NonNull public com.google.cloud.firestore.Query whereNotEqualTo(@NonNull com.google.cloud.firestore.FieldPath, @Nullable Object);
    method @NonNull public com.google.cloud.firestore.Query whereNotEqualTo(@NonNull String, @Nullable Object);
    method @NonNull public com.google.cloud.firestore.Query whereNotIn(@NonNull com.google.cloud.firestore.FieldPath, @NonNull List<? extends Object>);
    method @NonNull public com.google.cloud.firestore.Query whereNotIn(@NonNull String, @NonNull List<? extends Object>);
  }

  public enum Query.Direction {
    enum_constant public static final com.google.cloud.firestore.Query.Direction ASCENDING;
    enum_constant public static final com.google.cloud.firestore.Query.Direction DESCENDING;
  }

  @com.google.api.core.InternalExtensionOnly public class QueryDocumentSnapshot extends com.google.cloud.firestore.DocumentSnapshot {
  }

  public class QueryPartition {
    ctor public QueryPartition(com.google.cloud.firestore.Query, @Nullable Object[], @Nullable Object[]);
    method public com.google.cloud.firestore.Query createQuery();
    method public boolean equals(Object);
    method @Nullable public Object[] getEndBefore();
    method @Nullable public Object[] getStartAt();
    method public int hashCode();
  }

  public class QuerySnapshot extends com.google.cloud.firestore.GenericQuerySnapshot<com.google.cloud.firestore.Query> {
    ctor protected QuerySnapshot(com.google.cloud.firestore.Query, com.google.cloud.Timestamp);
    ctor protected QuerySnapshot(com.google.cloud.firestore.Query, com.google.cloud.Timestamp, List<com.google.cloud.firestore.QueryDocumentSnapshot>, List<com.google.cloud.firestore.DocumentChange>);
    method public static com.google.cloud.firestore.QuerySnapshot withChanges(com.google.cloud.firestore.Query, com.google.cloud.Timestamp, com.google.cloud.firestore.DocumentSet, List<com.google.cloud.firestore.DocumentChange>);
    method public static com.google.cloud.firestore.QuerySnapshot withDocuments(com.google.cloud.firestore.Query, com.google.cloud.Timestamp, List<com.google.cloud.firestore.QueryDocumentSnapshot>);
  }

  @com.google.api.core.BetaApi public final class RecursiveDelete {
    method public com.google.api.core.ApiFuture<Void> run();
    field public static final int MAX_PENDING_OPS = 5000; // 0x1388
    field public static final int MIN_PENDING_OPS = 1000; // 0x3e8
    field public static final String REFERENCE_NAME_MIN_ID = "__id-9223372036854775808__";
  }

  public final class SetOptions {
    method public boolean equals(Object);
    method public int hashCode();
    method @NonNull public static com.google.cloud.firestore.SetOptions merge();
    method @NonNull public static com.google.cloud.firestore.SetOptions mergeFieldPaths(List<com.google.cloud.firestore.FieldPath>);
    method @NonNull public static com.google.cloud.firestore.SetOptions mergeFields(List<String>);
    method @NonNull public static com.google.cloud.firestore.SetOptions mergeFields(String...);
  }

  @com.google.api.core.InternalApi public abstract class StreamableQuery<SnapshotType> {
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.ExplainResults<SnapshotType>> explain(com.google.cloud.firestore.ExplainOptions);
    method @NonNull public abstract com.google.api.core.ApiFuture<SnapshotType> get();
    method @NonNull public com.google.cloud.firestore.Firestore getFirestore();
    method public String toString();
  }

  @com.google.api.core.InternalExtensionOnly public abstract class Transaction extends com.google.cloud.firestore.UpdateBuilder<com.google.cloud.firestore.Transaction> {
    ctor protected Transaction(com.google.cloud.firestore.FirestoreImpl);
    method @NonNull @com.google.api.core.BetaApi public abstract com.google.api.core.ApiFuture<com.google.cloud.firestore.Pipeline.Snapshot> execute(@NonNull com.google.cloud.firestore.Pipeline);
    method @NonNull @com.google.api.core.BetaApi public abstract com.google.api.core.ApiFuture<com.google.cloud.firestore.Pipeline.Snapshot> execute(@NonNull com.google.cloud.firestore.Pipeline, @NonNull com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions);
    method @NonNull public abstract com.google.api.core.ApiFuture<com.google.cloud.firestore.AggregateQuerySnapshot> get(@NonNull com.google.cloud.firestore.AggregateQuery);
    method @NonNull public abstract com.google.api.core.ApiFuture<com.google.cloud.firestore.DocumentSnapshot> get(@NonNull com.google.cloud.firestore.DocumentReference);
    method @NonNull public abstract com.google.api.core.ApiFuture<com.google.cloud.firestore.QuerySnapshot> get(@NonNull com.google.cloud.firestore.Query);
    method @NonNull public abstract com.google.api.core.ApiFuture<List<com.google.cloud.firestore.DocumentSnapshot>> getAll(@NonNull com.google.cloud.firestore.DocumentReference...);
    method @NonNull public abstract com.google.api.core.ApiFuture<List<com.google.cloud.firestore.DocumentSnapshot>> getAll(@NonNull com.google.cloud.firestore.DocumentReference[], @Nullable com.google.cloud.firestore.FieldMask);
    method public abstract boolean hasTransactionId();
    field @NonNull protected com.google.cloud.firestore.telemetry.TraceUtil.Context transactionTraceContext;
  }

  public static interface Transaction.AsyncFunction<T> {
    method public com.google.api.core.ApiFuture<T> updateCallback(com.google.cloud.firestore.Transaction);
  }

  public static interface Transaction.Function<T> {
    method public T updateCallback(com.google.cloud.firestore.Transaction);
  }

  public final class TransactionOptions {
    method @NonNull public static com.google.cloud.firestore.TransactionOptions create();
    method @Deprecated @NonNull public static com.google.cloud.firestore.TransactionOptions create(@Nullable Executor);
    method @Deprecated @NonNull public static com.google.cloud.firestore.TransactionOptions create(@Nullable Executor, int);
    method @Deprecated @NonNull public static com.google.cloud.firestore.TransactionOptions create(int);
    method @NonNull public static com.google.cloud.firestore.TransactionOptions.ReadOnlyOptionsBuilder createReadOnlyOptionsBuilder();
    method @NonNull public static com.google.cloud.firestore.TransactionOptions.ReadWriteOptionsBuilder createReadWriteOptionsBuilder();
    method @Nullable public Executor getExecutor();
    method public int getNumberOfAttempts();
    method @Nullable public com.google.protobuf.Timestamp getReadTime();
    method @NonNull public com.google.cloud.firestore.TransactionOptions.TransactionOptionsType getType();
  }

  @com.google.api.core.InternalExtensionOnly public abstract static class TransactionOptions.Builder<B extends com.google.cloud.firestore.TransactionOptions.Builder<B>> {
    ctor protected TransactionOptions.Builder(@Nullable Executor);
    method @NonNull public abstract com.google.cloud.firestore.TransactionOptions build();
    method @Nullable public Executor getExecutor();
    method @NonNull public B setExecutor(@Nullable Executor);
    field @Nullable protected Executor executor;
  }

  public static final class TransactionOptions.ReadOnlyOptionsBuilder extends com.google.cloud.firestore.TransactionOptions.Builder<com.google.cloud.firestore.TransactionOptions.ReadOnlyOptionsBuilder> {
    method @NonNull public com.google.cloud.firestore.TransactionOptions build();
    method @Nullable public com.google.protobuf.TimestampOrBuilder getReadTime();
    method @NonNull public com.google.cloud.firestore.TransactionOptions.ReadOnlyOptionsBuilder setReadTime(@Nullable com.google.protobuf.TimestampOrBuilder);
  }

  public static final class TransactionOptions.ReadWriteOptionsBuilder extends com.google.cloud.firestore.TransactionOptions.Builder<com.google.cloud.firestore.TransactionOptions.ReadWriteOptionsBuilder> {
    method @NonNull public com.google.cloud.firestore.TransactionOptions build();
    method public int getNumberOfAttempts();
    method @NonNull public com.google.cloud.firestore.TransactionOptions.ReadWriteOptionsBuilder setNumberOfAttempts(int);
  }

  public enum TransactionOptions.TransactionOptionsType {
    enum_constant public static final com.google.cloud.firestore.TransactionOptions.TransactionOptionsType READ_ONLY;
    enum_constant public static final com.google.cloud.firestore.TransactionOptions.TransactionOptionsType READ_WRITE;
  }

  @com.google.api.core.InternalExtensionOnly public abstract class UpdateBuilder<T> {
    method protected String className();
    method @NonNull public T create(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>);
    method @NonNull public T create(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Object);
    method @NonNull public T delete(@NonNull com.google.cloud.firestore.DocumentReference);
    method @NonNull public T delete(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.Precondition);
    method public int getMutationsSize();
    method @NonNull public T set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>);
    method @NonNull public T set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>, @NonNull com.google.cloud.firestore.SetOptions);
    method @NonNull public T set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Object);
    method @NonNull public T set(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Object, @NonNull com.google.cloud.firestore.SetOptions);
    method public String toString();
    method @NonNull public T update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.FieldPath, @Nullable Object, Object...);
    method @NonNull public T update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.Precondition, @NonNull com.google.cloud.firestore.FieldPath, @Nullable Object, Object...);
    method @NonNull public T update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull com.google.cloud.firestore.Precondition, @NonNull String, @Nullable Object, Object...);
    method @NonNull public T update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>);
    method @NonNull public T update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull Map<String,Object>, com.google.cloud.firestore.Precondition);
    method @NonNull public T update(@NonNull com.google.cloud.firestore.DocumentReference, @NonNull String, @Nullable Object, Object...);
    field protected volatile boolean committed;
  }

  public final class VectorQuery extends com.google.cloud.firestore.StreamableQuery<com.google.cloud.firestore.VectorQuerySnapshot> {
    method public boolean equals(Object);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.ExplainResults<com.google.cloud.firestore.VectorQuerySnapshot>> explain(com.google.cloud.firestore.ExplainOptions);
    method @NonNull public com.google.api.core.ApiFuture<com.google.cloud.firestore.VectorQuerySnapshot> get();
    method public int hashCode();
    method protected com.google.firestore.v1.RunQueryRequest.Builder toRunQueryRequestBuilder(@Nullable com.google.protobuf.ByteString, @Nullable com.google.cloud.Timestamp, @Nullable com.google.cloud.firestore.ExplainOptions);
  }

  public enum VectorQuery.DistanceMeasure {
    enum_constant public static final com.google.cloud.firestore.VectorQuery.DistanceMeasure COSINE;
    enum_constant public static final com.google.cloud.firestore.VectorQuery.DistanceMeasure DOT_PRODUCT;
    enum_constant public static final com.google.cloud.firestore.VectorQuery.DistanceMeasure EUCLIDEAN;
  }

  public class VectorQueryOptions {
    method public boolean equals(Object);
    method @Nullable public com.google.cloud.firestore.FieldPath getDistanceResultField();
    method @Nullable public Double getDistanceThreshold();
    method public static com.google.cloud.firestore.VectorQueryOptions.Builder newBuilder();
    method public String toString();
  }

  public static final class VectorQueryOptions.Builder {
    method public com.google.cloud.firestore.VectorQueryOptions build();
    method public com.google.cloud.firestore.VectorQueryOptions.Builder setDistanceResultField(@Nullable com.google.cloud.firestore.FieldPath);
    method public com.google.cloud.firestore.VectorQueryOptions.Builder setDistanceResultField(@Nullable String);
    method public com.google.cloud.firestore.VectorQueryOptions.Builder setDistanceThreshold(@Nullable Double);
  }

  public class VectorQuerySnapshot extends com.google.cloud.firestore.GenericQuerySnapshot<com.google.cloud.firestore.VectorQuery> {
    ctor protected VectorQuerySnapshot(com.google.cloud.firestore.VectorQuery, com.google.cloud.Timestamp, List<com.google.cloud.firestore.QueryDocumentSnapshot>, List<com.google.cloud.firestore.DocumentChange>);
    method public static com.google.cloud.firestore.VectorQuerySnapshot withDocuments(com.google.cloud.firestore.VectorQuery, com.google.cloud.Timestamp, List<com.google.cloud.firestore.QueryDocumentSnapshot>);
  }

  public final class VectorValue {
    method public boolean equals(Object);
    method public int hashCode();
    method @NonNull public double[] toArray();
    method public String toString();
  }

  public class WriteBatch extends com.google.cloud.firestore.UpdateBuilder<com.google.cloud.firestore.WriteBatch> {
    method @NonNull public com.google.api.core.ApiFuture<List<com.google.cloud.firestore.WriteResult>> commit();
  }

  public final class WriteResult {
    method public boolean equals(Object);
    method @NonNull public com.google.cloud.Timestamp getUpdateTime();
    method public int hashCode();
  }

}

package com.google.cloud.firestore.annotation {

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface DocumentId {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Exclude {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface IgnoreExtraProperties {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface PropertyName {
    method public abstract String value();
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ServerTimestamp {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ThrowOnExtraProperties {
  }

}

package com.google.cloud.firestore.collection {

  @com.google.api.core.InternalApi public class ArraySortedMap<K, V> extends com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> {
    ctor public ArraySortedMap(Comparator<K>);
    method public static <A, B, C> com.google.cloud.firestore.collection.ArraySortedMap<A,C> buildFrom(List<A>, Map<B,C>, com.google.cloud.firestore.collection.ImmutableSortedMap.Builder.KeyTranslator<A,B>, Comparator<A>);
    method public boolean containsKey(K);
    method public static <K, V> com.google.cloud.firestore.collection.ArraySortedMap<K,V> fromMap(Map<K,V>, Comparator<K>);
    method public V get(K);
    method public Comparator<K> getComparator();
    method public K getMaxKey();
    method public K getMinKey();
    method public K getPredecessorKey(K);
    method public K getSuccessorKey(K);
    method public void inOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.NodeVisitor<K,V>);
    method public int indexOf(K);
    method public com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> insert(K, V);
    method public boolean isEmpty();
    method public Iterator<Map.Entry<K,V>> iterator();
    method public Iterator<Map.Entry<K,V>> iteratorFrom(K);
    method public com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> remove(K);
    method public Iterator<Map.Entry<K,V>> reverseIterator();
    method public Iterator<Map.Entry<K,V>> reverseIteratorFrom(K);
    method public int size();
  }

  @com.google.api.core.InternalApi public abstract class ImmutableSortedMap<K, V> {
    ctor public ImmutableSortedMap();
    method public abstract boolean containsKey(K);
    method public boolean equals(Object);
    method public abstract V get(K);
    method public abstract Comparator<K> getComparator();
    method public abstract K getMaxKey();
    method public abstract K getMinKey();
    method public abstract K getPredecessorKey(K);
    method public abstract K getSuccessorKey(K);
    method public int hashCode();
    method public abstract void inOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.NodeVisitor<K,V>);
    method public abstract int indexOf(K);
    method public abstract com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> insert(K, V);
    method public abstract boolean isEmpty();
    method public abstract Iterator<Map.Entry<K,V>> iterator();
    method public abstract Iterator<Map.Entry<K,V>> iteratorFrom(K);
    method public abstract com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> remove(K);
    method public abstract Iterator<Map.Entry<K,V>> reverseIterator();
    method public abstract Iterator<Map.Entry<K,V>> reverseIteratorFrom(K);
    method public abstract int size();
    method public String toString();
  }

  public static class ImmutableSortedMap.Builder {
    ctor public ImmutableSortedMap.Builder();
    method public static <A, B, C> com.google.cloud.firestore.collection.ImmutableSortedMap<A,C> buildFrom(List<A>, Map<B,C>, com.google.cloud.firestore.collection.ImmutableSortedMap.Builder.KeyTranslator<A,B>, Comparator<A>);
    method public static <K, V> com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> emptyMap(Comparator<K>);
    method public static <A, B> com.google.cloud.firestore.collection.ImmutableSortedMap<A,B> fromMap(Map<A,B>, Comparator<A>);
    method public static <A> com.google.cloud.firestore.collection.ImmutableSortedMap.Builder.KeyTranslator<A,A> identityTranslator();
  }

  public static interface ImmutableSortedMap.Builder.KeyTranslator<C, D> {
    method public D translate(C);
  }

  @com.google.api.core.InternalApi public class ImmutableSortedMapIterator<K, V> {
    method public boolean hasNext();
    method public Map.Entry<K,V> next();
    method public void remove();
  }

  @com.google.api.core.InternalApi public class ImmutableSortedSet<T> {
    ctor public ImmutableSortedSet(List<T>, Comparator<T>);
    method public boolean contains(T);
    method public boolean equals(Object);
    method public T getMaxEntry();
    method public T getMinEntry();
    method public T getPredecessorEntry(T);
    method public int hashCode();
    method public int indexOf(T);
    method public com.google.cloud.firestore.collection.ImmutableSortedSet<T> insert(T);
    method public boolean isEmpty();
    method public Iterator<T> iterator();
    method public Iterator<T> iteratorFrom(T);
    method public com.google.cloud.firestore.collection.ImmutableSortedSet<T> remove(T);
    method public Iterator<T> reverseIterator();
    method public Iterator<T> reverseIteratorFrom(T);
    method public int size();
  }

  @com.google.api.core.InternalApi public class LLRBBlackValueNode<K, V> extends com.google.cloud.firestore.collection.LLRBValueNode<K,V> {
    method protected com.google.cloud.firestore.collection.LLRBValueNode<K,V> copy(K, V, com.google.cloud.firestore.collection.LLRBNode<K,V>, com.google.cloud.firestore.collection.LLRBNode<K,V>);
    method protected com.google.cloud.firestore.collection.LLRBNode.Color getColor();
    method public boolean isRed();
    method public int size();
  }

  @com.google.api.core.InternalApi public class LLRBEmptyNode<K, V> implements com.google.cloud.firestore.collection.LLRBNode<K,V> {
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> copy(K, V, com.google.cloud.firestore.collection.LLRBNode.Color, com.google.cloud.firestore.collection.LLRBNode<K,V>, com.google.cloud.firestore.collection.LLRBNode<K,V>);
    method public static <K, V> com.google.cloud.firestore.collection.LLRBEmptyNode<K,V> getInstance();
    method public K getKey();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getLeft();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getMax();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getMin();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getRight();
    method public V getValue();
    method public void inOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.NodeVisitor<K,V>);
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> insert(K, V, Comparator<K>);
    method public boolean isEmpty();
    method public boolean isRed();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> remove(K, Comparator<K>);
    method public boolean shortCircuitingInOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V>);
    method public boolean shortCircuitingReverseOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V>);
    method public int size();
  }

  @com.google.api.core.InternalApi public interface LLRBNode<K, V> {
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> copy(K, V, com.google.cloud.firestore.collection.LLRBNode.Color, com.google.cloud.firestore.collection.LLRBNode<K,V>, com.google.cloud.firestore.collection.LLRBNode<K,V>);
    method public K getKey();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getLeft();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getMax();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getMin();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getRight();
    method public V getValue();
    method public void inOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.NodeVisitor<K,V>);
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> insert(K, V, Comparator<K>);
    method public boolean isEmpty();
    method public boolean isRed();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> remove(K, Comparator<K>);
    method public boolean shortCircuitingInOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V>);
    method public boolean shortCircuitingReverseOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V>);
    method public int size();
  }

  public enum LLRBNode.Color {
    enum_constant public static final com.google.cloud.firestore.collection.LLRBNode.Color BLACK;
    enum_constant public static final com.google.cloud.firestore.collection.LLRBNode.Color RED;
  }

  public abstract static class LLRBNode.NodeVisitor<K, V> implements com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V> {
    ctor public LLRBNode.NodeVisitor();
    method public boolean shouldContinue(K, V);
    method public abstract void visitEntry(K, V);
  }

  public static interface LLRBNode.ShortCircuitingNodeVisitor<K, V> {
    method public boolean shouldContinue(K, V);
  }

  @com.google.api.core.InternalApi public class LLRBRedValueNode<K, V> extends com.google.cloud.firestore.collection.LLRBValueNode<K,V> {
    method protected com.google.cloud.firestore.collection.LLRBValueNode<K,V> copy(K, V, com.google.cloud.firestore.collection.LLRBNode<K,V>, com.google.cloud.firestore.collection.LLRBNode<K,V>);
    method protected com.google.cloud.firestore.collection.LLRBNode.Color getColor();
    method public boolean isRed();
    method public int size();
  }

  @com.google.api.core.InternalApi public abstract class LLRBValueNode<K, V> implements com.google.cloud.firestore.collection.LLRBNode<K,V> {
    method public com.google.cloud.firestore.collection.LLRBValueNode<K,V> copy(K, V, com.google.cloud.firestore.collection.LLRBNode.Color, com.google.cloud.firestore.collection.LLRBNode<K,V>, com.google.cloud.firestore.collection.LLRBNode<K,V>);
    method protected abstract com.google.cloud.firestore.collection.LLRBValueNode<K,V> copy(K, V, com.google.cloud.firestore.collection.LLRBNode<K,V>, com.google.cloud.firestore.collection.LLRBNode<K,V>);
    method protected abstract com.google.cloud.firestore.collection.LLRBNode.Color getColor();
    method public K getKey();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getLeft();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getMax();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getMin();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> getRight();
    method public V getValue();
    method public void inOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.NodeVisitor<K,V>);
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> insert(K, V, Comparator<K>);
    method public boolean isEmpty();
    method public com.google.cloud.firestore.collection.LLRBNode<K,V> remove(K, Comparator<K>);
    method public boolean shortCircuitingInOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V>);
    method public boolean shortCircuitingReverseOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.ShortCircuitingNodeVisitor<K,V>);
  }

  @com.google.api.core.InternalApi public class RBTreeSortedMap<K, V> extends com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> {
    method public static <A, B, C> com.google.cloud.firestore.collection.RBTreeSortedMap<A,C> buildFrom(List<A>, Map<B,C>, com.google.cloud.firestore.collection.ImmutableSortedMap.Builder.KeyTranslator<A,B>, Comparator<A>);
    method public boolean containsKey(K);
    method public static <A, B> com.google.cloud.firestore.collection.RBTreeSortedMap<A,B> fromMap(Map<A,B>, Comparator<A>);
    method public V get(K);
    method public Comparator<K> getComparator();
    method public K getMaxKey();
    method public K getMinKey();
    method public K getPredecessorKey(K);
    method public K getSuccessorKey(K);
    method public void inOrderTraversal(com.google.cloud.firestore.collection.LLRBNode.NodeVisitor<K,V>);
    method public int indexOf(K);
    method public com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> insert(K, V);
    method public boolean isEmpty();
    method public Iterator<Map.Entry<K,V>> iterator();
    method public Iterator<Map.Entry<K,V>> iteratorFrom(K);
    method public com.google.cloud.firestore.collection.ImmutableSortedMap<K,V> remove(K);
    method public Iterator<Map.Entry<K,V>> reverseIterator();
    method public Iterator<Map.Entry<K,V>> reverseIteratorFrom(K);
    method public int size();
  }

}

package com.google.cloud.firestore.encoding {

  @com.google.api.core.InternalApi public class CustomClassMapper {
    ctor public CustomClassMapper();
    method public static <T> T convertToCustomClass(Object, Class<T>, com.google.cloud.firestore.DocumentReference);
    method public static Map<String,Object> convertToPlainJavaTypes(Map<?,Object>);
    method public static Object convertToPlainJavaTypes(Object);
    method public static <T> Object serialize(T);
  }

}

package com.google.cloud.firestore.pipeline.expressions {

  @com.google.api.core.BetaApi public class AggregateFunction {
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.AliasedAggregate as(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction average(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction average(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction count(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction count(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction countAll();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction countDistinct(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction countDistinct(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction countIf(com.google.cloud.firestore.pipeline.expressions.BooleanExpression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction maximum(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction maximum(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction minimum(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction minimum(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction rawAggregate(String, com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction sum(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.AggregateFunction sum(String);
  }

  @com.google.api.core.InternalApi public class AliasedAggregate {
    method @com.google.api.core.InternalApi public String getAlias();
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.pipeline.expressions.AggregateFunction getExpr();
  }

  @com.google.api.core.InternalApi public final class AliasedExpression implements com.google.cloud.firestore.pipeline.expressions.Selectable {
    method public com.google.cloud.firestore.pipeline.expressions.Selectable as(String);
    method @com.google.api.core.InternalApi public String getAlias();
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.pipeline.expressions.Expression getExpr();
  }

  @com.google.api.core.BetaApi public abstract class BooleanExpression extends com.google.cloud.firestore.pipeline.expressions.Expression {
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression conditional(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression conditional(Object, Object);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.AggregateFunction countIf();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression ifError(com.google.cloud.firestore.pipeline.expressions.BooleanExpression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression not();
    method public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression rawFunction(String, com.google.cloud.firestore.pipeline.expressions.Expression...);
  }

  @com.google.api.core.BetaApi public abstract class Expression {
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression abs();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression abs(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression abs(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression add(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression add(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression add(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression add(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression add(String, Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression and(com.google.cloud.firestore.pipeline.expressions.BooleanExpression, com.google.cloud.firestore.pipeline.expressions.BooleanExpression...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression array(List<Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression array(Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayConcat(com.google.cloud.firestore.pipeline.expressions.Expression, Object...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression arrayConcat(com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayConcat(String, Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContains(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContains(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContains(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContains(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContains(String, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAll(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAll(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAll(com.google.cloud.firestore.pipeline.expressions.Expression, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAll(List<Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAll(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAll(String, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAny(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAny(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAny(com.google.cloud.firestore.pipeline.expressions.Expression, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAny(List<Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAny(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression arrayContainsAny(String, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression arrayGet(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayGet(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayGet(com.google.cloud.firestore.pipeline.expressions.Expression, int);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression arrayGet(int);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayGet(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayGet(String, int);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression arrayLength();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayLength(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayLength(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression arrayReverse();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayReverse(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arrayReverse(String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression arraySum();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arraySum(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression arraySum(String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Selectable as(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Ordering ascending();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.AggregateFunction average();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression byteLength();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression byteLength(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression byteLength(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression ceil();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ceil(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ceil(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression charLength();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression charLength(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression charLength(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression collectionId();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression collectionId(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression collectionId(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression concat(com.google.cloud.firestore.pipeline.expressions.Expression, Object...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression concat(Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression concat(String, Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression conditional(com.google.cloud.firestore.pipeline.expressions.BooleanExpression, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression conditional(com.google.cloud.firestore.pipeline.expressions.BooleanExpression, Object, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression constant(Boolean);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(byte[]);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(com.google.cloud.firestore.Blob);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(com.google.cloud.firestore.DocumentReference);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(com.google.cloud.firestore.GeoPoint);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(com.google.cloud.firestore.VectorValue);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(com.google.cloud.Timestamp);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(Date);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression constant(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression cosineDistance(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression cosineDistance(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression cosineDistance(com.google.cloud.firestore.pipeline.expressions.Expression, double[]);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression cosineDistance(double[]);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression cosineDistance(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression cosineDistance(String, double[]);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.AggregateFunction count();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.AggregateFunction countDistinct();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression currentTimestamp();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Ordering descending();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression divide(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression divide(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression divide(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression divide(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression divide(String, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression documentId();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression documentId(com.google.cloud.firestore.DocumentReference);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression documentId(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression documentId(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression dotProduct(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression dotProduct(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression dotProduct(com.google.cloud.firestore.pipeline.expressions.Expression, double[]);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression dotProduct(double[]);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression dotProduct(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression dotProduct(String, double[]);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression endsWith(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression endsWith(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression endsWith(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression endsWith(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression endsWith(String, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equal(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equal(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression equal(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equal(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equal(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equalAny(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equalAny(com.google.cloud.firestore.pipeline.expressions.Expression, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression equalAny(List<Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equalAny(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression equalAny(String, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression euclideanDistance(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression euclideanDistance(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression euclideanDistance(com.google.cloud.firestore.pipeline.expressions.Expression, double[]);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression euclideanDistance(double[]);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression euclideanDistance(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression euclideanDistance(String, double[]);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression exists();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression exists(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression exists(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression exp();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression exp(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression exp(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Field field(com.google.cloud.firestore.FieldPath);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Field field(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression floor();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression floor(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression floor(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThan(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThan(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThan(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThan(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThan(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThanOrEqual(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThanOrEqual(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThanOrEqual(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThanOrEqual(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression greaterThanOrEqual(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ifAbsent(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ifAbsent(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression ifAbsent(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ifAbsent(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ifAbsent(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression ifError(com.google.cloud.firestore.pipeline.expressions.BooleanExpression, com.google.cloud.firestore.pipeline.expressions.BooleanExpression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression ifError(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ifError(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ifError(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression ifError(Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression isAbsent();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression isAbsent(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression isAbsent(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression isError();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression isError(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression isNaN();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression isNotNaN();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression isNotNaN(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression isNotNaN(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression isNotNull();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression isNull();
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression join(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression join(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression join(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression join(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression join(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression join(String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression length();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression length(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression length(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThan(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThan(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThan(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThan(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThan(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThanOrEqual(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThanOrEqual(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThanOrEqual(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThanOrEqual(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression lessThanOrEqual(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression like(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression like(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression like(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression like(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression like(String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression ln();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ln(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression ln(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression log(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression log(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression log(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression log(String, Number);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression log10();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression log10(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression log10(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression logicalMaximum(com.google.cloud.firestore.pipeline.expressions.Expression, Object...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression logicalMaximum(Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression logicalMaximum(String, Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression logicalMinimum(com.google.cloud.firestore.pipeline.expressions.Expression, Object...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression logicalMinimum(Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression logicalMinimum(String, Object...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression map(Map<String,Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapGet(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapGet(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression mapGet(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapGet(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapGet(String, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapMerge(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapMerge(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression mapMerge(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapMerge(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapMerge(String, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression mapRemove(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapRemove(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapRemove(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression mapRemove(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapRemove(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mapRemove(String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.AggregateFunction maximum();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.AggregateFunction minimum();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mod(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mod(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression mod(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mod(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression mod(String, Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression multiply(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression multiply(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression multiply(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression multiply(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression multiply(String, Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression not(com.google.cloud.firestore.pipeline.expressions.BooleanExpression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqual(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqual(com.google.cloud.firestore.pipeline.expressions.Expression, Object);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqual(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqual(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqual(String, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqualAny(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqualAny(com.google.cloud.firestore.pipeline.expressions.Expression, List<Object>);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqualAny(List<Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqualAny(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression notEqualAny(String, List<Object>);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression nullValue();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression or(com.google.cloud.firestore.pipeline.expressions.BooleanExpression, com.google.cloud.firestore.pipeline.expressions.BooleanExpression...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression pow(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression pow(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression pow(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression pow(Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression pow(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression pow(String, Number);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression rawExpression(String, com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexContains(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexContains(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexContains(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexContains(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexContains(String, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexMatch(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexMatch(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexMatch(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexMatch(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression regexMatch(String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression reverse();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression reverse(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression reverse(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression round();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression round(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression round(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression roundToPrecision(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression roundToPrecision(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression roundToPrecision(com.google.cloud.firestore.pipeline.expressions.Expression, int);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression roundToPrecision(int);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression roundToPrecision(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression roundToPrecision(String, int);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression split(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression split(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression split(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression split(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression split(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression split(String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression sqrt();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression sqrt(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression sqrt(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression startsWith(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression startsWith(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression startsWith(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression startsWith(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression startsWith(String, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression stringConcat(com.google.cloud.firestore.pipeline.expressions.Expression, Object...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression stringConcat(com.google.cloud.firestore.pipeline.expressions.Expression...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression stringConcat(String, Object...);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression stringConcat(String...);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression stringContains(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression stringContains(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.BooleanExpression stringContains(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression stringContains(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression stringContains(String, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression substring(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression substring(Object, Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression substring(String, int, int);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression subtract(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression subtract(com.google.cloud.firestore.pipeline.expressions.Expression, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression subtract(Object);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression subtract(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression subtract(String, Number);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.AggregateFunction sum();
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampAdd(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampAdd(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampAdd(com.google.cloud.firestore.pipeline.expressions.Expression, String, long);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampAdd(String, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampAdd(String, long);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampAdd(String, String, long);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampSubtract(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampSubtract(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampSubtract(com.google.cloud.firestore.pipeline.expressions.Expression, String, long);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampSubtract(String, com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampSubtract(String, long);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampSubtract(String, String, long);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixMicros();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixMicros(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixMicros(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixMillis();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixMillis(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixMillis(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixSeconds();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixSeconds(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampToUnixSeconds(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(com.google.cloud.firestore.pipeline.expressions.Expression, String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(String, com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(String, String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression timestampTruncate(String, String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression toLower();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression toLower(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression toLower(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression toUpper();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression toUpper(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression toUpper(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression trim();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression trim(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression trim(String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression trimValue(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression trimValue(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression trimValue(com.google.cloud.firestore.pipeline.expressions.Expression, String);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.expressions.Expression trimValue(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression trimValue(String, com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression trimValue(String, String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression type();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression type(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression type(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression unixMicrosToTimestamp();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression unixMicrosToTimestamp(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression unixMicrosToTimestamp(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression unixMillisToTimestamp();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression unixMillisToTimestamp(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression unixMillisToTimestamp(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression unixSecondsToTimestamp();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression unixSecondsToTimestamp(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression unixSecondsToTimestamp(String);
    method @com.google.api.core.BetaApi public final com.google.cloud.firestore.pipeline.expressions.Expression vectorLength();
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression vectorLength(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Expression vectorLength(String);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.BooleanExpression xor(com.google.cloud.firestore.pipeline.expressions.BooleanExpression, com.google.cloud.firestore.pipeline.expressions.BooleanExpression...);
  }

  @com.google.api.core.BetaApi public final class Field extends com.google.cloud.firestore.pipeline.expressions.Expression implements com.google.cloud.firestore.pipeline.expressions.Selectable {
    method public boolean equals(Object);
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.FieldPath getPath();
    method public int hashCode();
    method @com.google.api.core.InternalApi public static com.google.cloud.firestore.pipeline.expressions.Field ofServerPath(String);
    method @com.google.api.core.InternalApi public static com.google.cloud.firestore.pipeline.expressions.Field ofUserPath(String);
    method @com.google.api.core.InternalApi public com.google.firestore.v1.Value toProto();
    field public static final String DOCUMENT_ID = "__name__";
  }

  @com.google.api.core.BetaApi public class FunctionExpression extends com.google.cloud.firestore.pipeline.expressions.Expression {
    method public boolean equals(Object);
    method public int hashCode();
  }

  @com.google.api.core.InternalApi public final class FunctionUtils {
    ctor public FunctionUtils();
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value aggregateFunctionToValue(com.google.cloud.firestore.pipeline.expressions.AggregateFunction);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Value exprToValue(com.google.cloud.firestore.pipeline.expressions.Expression);
  }

  @com.google.api.core.BetaApi public final class Ordering {
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Ordering ascending(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.expressions.Ordering descending(com.google.cloud.firestore.pipeline.expressions.Expression);
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.pipeline.expressions.Ordering.Direction getDir();
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.pipeline.expressions.Expression getExpr();
    method @com.google.api.core.InternalApi public com.google.firestore.v1.Value toProto();
  }

  @com.google.api.core.BetaApi public enum Ordering.Direction {
    method public String toString();
    enum_constant public static final com.google.cloud.firestore.pipeline.expressions.Ordering.Direction ASCENDING;
    enum_constant public static final com.google.cloud.firestore.pipeline.expressions.Ordering.Direction DESCENDING;
  }

  @com.google.api.core.BetaApi public interface Selectable {
  }

}

package com.google.cloud.firestore.pipeline.stages {

  @com.google.api.core.InternalApi public final class AddFields extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public AddFields(Map<String,com.google.cloud.firestore.pipeline.expressions.Expression>);
  }

  @com.google.api.core.BetaApi public final class Aggregate extends com.google.cloud.firestore.pipeline.stages.Stage {
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.stages.Aggregate withAccumulators(com.google.cloud.firestore.pipeline.expressions.AliasedAggregate...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.stages.Aggregate withGroups(com.google.cloud.firestore.pipeline.expressions.Selectable...);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.stages.Aggregate withGroups(String...);
    method @com.google.api.core.InternalApi public com.google.cloud.firestore.pipeline.stages.Aggregate withOptions(@NonNull com.google.cloud.firestore.pipeline.stages.AggregateOptions);
  }

  public final class AggregateHints {
    ctor public AggregateHints();
    method public final com.google.cloud.firestore.pipeline.stages.AggregateHints with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateHints with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateHints with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateHints with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateHints with(String, String);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateHints withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  public final class AggregateOptions {
    ctor public AggregateOptions();
    method public final com.google.cloud.firestore.pipeline.stages.AggregateOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.AggregateOptions withHints(com.google.cloud.firestore.pipeline.stages.AggregateHints);
    method public final com.google.cloud.firestore.pipeline.stages.AggregateOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  @com.google.api.core.InternalApi public final class Collection extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor public Collection(@NonNull String, com.google.cloud.firestore.pipeline.stages.CollectionOptions);
    method public com.google.cloud.firestore.pipeline.stages.Collection withOptions(com.google.cloud.firestore.pipeline.stages.CollectionOptions);
  }

  @com.google.api.core.InternalApi public final class CollectionGroup extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public CollectionGroup(String, com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions);
    method public com.google.cloud.firestore.pipeline.stages.CollectionGroup withOptions(com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions);
  }

  public final class CollectionGroupOptions {
    ctor public CollectionGroupOptions();
    method public final com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions withHints(com.google.cloud.firestore.pipeline.stages.CollectionHints);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionGroupOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  public final class CollectionHints {
    ctor public CollectionHints();
    method public final com.google.cloud.firestore.pipeline.stages.CollectionHints with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionHints with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionHints with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionHints with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionHints with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.CollectionHints withForceIndex(String);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionHints withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  public final class CollectionOptions {
    ctor public CollectionOptions();
    method public final com.google.cloud.firestore.pipeline.stages.CollectionOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.CollectionOptions withHints(com.google.cloud.firestore.pipeline.stages.CollectionHints);
    method public final com.google.cloud.firestore.pipeline.stages.CollectionOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  @com.google.api.core.InternalApi public final class Database extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Database();
  }

  @com.google.api.core.BetaApi public final class Distinct extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Distinct(Map<String,com.google.cloud.firestore.pipeline.expressions.Expression>);
  }

  @com.google.api.core.InternalApi public final class Documents extends com.google.cloud.firestore.pipeline.stages.Stage {
    method @com.google.api.core.InternalApi public static com.google.cloud.firestore.pipeline.stages.Documents of(com.google.cloud.firestore.DocumentReference...);
  }

  public final class ExplainOptions {
    ctor public ExplainOptions();
    method public final com.google.cloud.firestore.pipeline.stages.ExplainOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.ExplainOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.ExplainOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.ExplainOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.ExplainOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.ExplainOptions withExecutionMode(com.google.cloud.firestore.pipeline.stages.ExplainOptions.ExecutionMode);
    method public final com.google.cloud.firestore.pipeline.stages.ExplainOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  public static class ExplainOptions.ExecutionMode {
    method public com.google.firestore.v1.Value toProto();
    field public static final com.google.cloud.firestore.pipeline.stages.ExplainOptions.ExecutionMode ANALYZE;
    field public static final com.google.cloud.firestore.pipeline.stages.ExplainOptions.ExecutionMode EXPLAIN;
  }

  @com.google.api.core.BetaApi public final class FindNearest extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public FindNearest(com.google.cloud.firestore.pipeline.expressions.Expression, com.google.cloud.firestore.VectorValue, com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure, com.google.cloud.firestore.pipeline.stages.FindNearestOptions);
  }

  public static final class FindNearest.DistanceMeasure {
    method public static com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure generic(String);
    field public static final com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure COSINE;
    field public static final com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure DOT_PRODUCT;
    field public static final com.google.cloud.firestore.pipeline.stages.FindNearest.DistanceMeasure EUCLIDEAN;
  }

  @com.google.api.core.BetaApi public final class FindNearestOptions {
    ctor public FindNearestOptions();
    method public final com.google.cloud.firestore.pipeline.stages.FindNearestOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.FindNearestOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.FindNearestOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.FindNearestOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.FindNearestOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.FindNearestOptions withDistanceField(com.google.cloud.firestore.pipeline.expressions.Field);
    method public com.google.cloud.firestore.pipeline.stages.FindNearestOptions withDistanceField(String);
    method public com.google.cloud.firestore.pipeline.stages.FindNearestOptions withLimit(long);
    method public final com.google.cloud.firestore.pipeline.stages.FindNearestOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  @com.google.api.core.InternalApi public final class Limit extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Limit(int);
  }

  @com.google.api.core.InternalApi public final class Offset extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Offset(int);
  }

  public final class PipelineExecuteOptions {
    ctor public PipelineExecuteOptions();
    method public final com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions withExplainOptions(com.google.cloud.firestore.pipeline.stages.ExplainOptions);
    method public com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions withIndexMode(String);
    method public final com.google.cloud.firestore.pipeline.stages.PipelineExecuteOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  public final class RawOptions {
    ctor public RawOptions();
    method public static com.google.cloud.firestore.pipeline.stages.RawOptions of(String, boolean);
    method public static com.google.cloud.firestore.pipeline.stages.RawOptions of(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public static com.google.cloud.firestore.pipeline.stages.RawOptions of(String, double);
    method public static com.google.cloud.firestore.pipeline.stages.RawOptions of(String, long);
    method public static com.google.cloud.firestore.pipeline.stages.RawOptions of(String, String);
    method protected com.google.cloud.firestore.pipeline.stages.RawOptions self(com.google.cloud.firestore.pipeline.stages.InternalOptions);
    method public final com.google.cloud.firestore.pipeline.stages.RawOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.RawOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.RawOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.RawOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.RawOptions with(String, String);
    method public final com.google.cloud.firestore.pipeline.stages.RawOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  public final class RawStage extends com.google.cloud.firestore.pipeline.stages.Stage {
    method @NonNull public static com.google.cloud.firestore.pipeline.stages.RawStage ofName(@NonNull String);
    method @NonNull public com.google.cloud.firestore.pipeline.stages.RawStage withArguments(@NonNull Object...);
    method @NonNull public com.google.cloud.firestore.pipeline.stages.RawStage withOptions(@NonNull com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  @com.google.api.core.InternalApi public final class RemoveFields extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public RemoveFields(com.google.common.collect.ImmutableList<com.google.cloud.firestore.pipeline.expressions.Field>);
  }

  public class ReplaceWith extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor public ReplaceWith(@NonNull com.google.cloud.firestore.pipeline.expressions.Expression);
    ctor public ReplaceWith(@NonNull com.google.cloud.firestore.pipeline.expressions.Expression, @NonNull com.google.cloud.firestore.pipeline.stages.ReplaceWith.Mode);
  }

  public enum ReplaceWith.Mode {
    enum_constant public static final com.google.cloud.firestore.pipeline.stages.ReplaceWith.Mode FULL_REPLACE;
    enum_constant public static final com.google.cloud.firestore.pipeline.stages.ReplaceWith.Mode MERGE_PREFER_NEXT;
    enum_constant public static final com.google.cloud.firestore.pipeline.stages.ReplaceWith.Mode MERGE_PREFER_PARENT;
    field public final com.google.firestore.v1.Value value;
  }

  public final class Sample extends com.google.cloud.firestore.pipeline.stages.Stage {
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.stages.Sample withDocLimit(int);
    method @com.google.api.core.BetaApi public com.google.cloud.firestore.pipeline.stages.Sample withOptions(@NonNull com.google.cloud.firestore.pipeline.stages.SampleOptions);
    method @com.google.api.core.BetaApi public static com.google.cloud.firestore.pipeline.stages.Sample withPercentage(double);
  }

  public enum Sample.Mode {
    enum_constant public static final com.google.cloud.firestore.pipeline.stages.Sample.Mode DOCUMENTS;
    enum_constant public static final com.google.cloud.firestore.pipeline.stages.Sample.Mode PERCENT;
    field public final com.google.firestore.v1.Value value;
  }

  public final class SampleOptions {
    ctor public SampleOptions();
    method public final com.google.cloud.firestore.pipeline.stages.SampleOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.SampleOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.SampleOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.SampleOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.SampleOptions with(String, String);
    method public final com.google.cloud.firestore.pipeline.stages.SampleOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  @com.google.api.core.InternalApi public final class Select extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Select(Map<String,com.google.cloud.firestore.pipeline.expressions.Expression>);
  }

  public final class Sort extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Sort(com.google.common.collect.ImmutableList<com.google.cloud.firestore.pipeline.expressions.Ordering>);
  }

  public abstract class Stage {
    field protected final String name;
  }

  @com.google.api.core.InternalApi public final class StageUtils {
    ctor public StageUtils();
    method @com.google.api.core.InternalApi public static com.google.common.collect.ImmutableMap<String,com.google.firestore.v1.Value> toMap(com.google.cloud.firestore.pipeline.stages.AbstractOptions<?>);
    method @com.google.api.core.InternalApi public static com.google.firestore.v1.Pipeline.Stage toStageProto(com.google.cloud.firestore.pipeline.stages.Stage);
  }

  public final class Union extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor public Union(com.google.cloud.firestore.Pipeline);
  }

  public final class Unnest extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor public Unnest(@NonNull com.google.cloud.firestore.pipeline.expressions.Field, @NonNull String);
    ctor public Unnest(@NonNull com.google.cloud.firestore.pipeline.expressions.Field, @NonNull String, @NonNull com.google.cloud.firestore.pipeline.stages.UnnestOptions);
    ctor public Unnest(@NonNull com.google.cloud.firestore.pipeline.expressions.Selectable);
    ctor public Unnest(@NonNull com.google.cloud.firestore.pipeline.expressions.Selectable, @NonNull com.google.cloud.firestore.pipeline.stages.UnnestOptions);
  }

  public final class UnnestOptions {
    ctor public UnnestOptions();
    method public final com.google.cloud.firestore.pipeline.stages.UnnestOptions with(String, boolean);
    method public final com.google.cloud.firestore.pipeline.stages.UnnestOptions with(String, com.google.cloud.firestore.pipeline.expressions.Field);
    method public final com.google.cloud.firestore.pipeline.stages.UnnestOptions with(String, double);
    method public final com.google.cloud.firestore.pipeline.stages.UnnestOptions with(String, long);
    method public final com.google.cloud.firestore.pipeline.stages.UnnestOptions with(String, String);
    method public com.google.cloud.firestore.pipeline.stages.UnnestOptions withIndexField(@NonNull String);
    method public final com.google.cloud.firestore.pipeline.stages.UnnestOptions withSection(String, com.google.cloud.firestore.pipeline.stages.RawOptions);
  }

  @com.google.api.core.InternalApi public final class Where extends com.google.cloud.firestore.pipeline.stages.Stage {
    ctor @com.google.api.core.InternalApi public Where(com.google.cloud.firestore.pipeline.expressions.BooleanExpression);
  }

}

package com.google.cloud.firestore.spi.v1 {

  public interface FirestoreRpc extends com.google.cloud.ServiceRpc {
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineCallable();
    method public ScheduledExecutorService getExecutor();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable();
    method public com.google.api.gax.rpc.BidiStreamingCallable<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.PartitionQueryRequest,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQueryPagedCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQueryCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQueryCallable();
    method public void shutdown();
    method public void shutdownNow();
  }

  public class GrpcFirestoreRpc implements com.google.cloud.firestore.spi.v1.FirestoreRpc {
    ctor public GrpcFirestoreRpc(com.google.cloud.firestore.FirestoreOptions);
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionCallable();
    method public void close();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineCallable();
    method public ScheduledExecutorService getExecutor();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable();
    method public com.google.api.gax.rpc.BidiStreamingCallable<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.PartitionQueryRequest,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQueryPagedCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQueryCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQueryCallable();
    method public void shutdown();
    method public void shutdownNow();
  }

}

package com.google.cloud.firestore.telemetry {

  @com.google.api.core.InternalApi public class CompositeApiTracerFactory extends com.google.api.gax.tracing.BaseApiTracerFactory {
    ctor public CompositeApiTracerFactory(List<com.google.api.gax.tracing.ApiTracerFactory>);
  }

  @com.google.api.core.InternalApi public class DisabledTraceUtil implements com.google.cloud.firestore.telemetry.TraceUtil {
    ctor public DisabledTraceUtil();
    method @NonNull public com.google.cloud.firestore.telemetry.TraceUtil.Context currentContext();
    method @NonNull public com.google.cloud.firestore.telemetry.TraceUtil.Span currentSpan();
    method @Nullable public com.google.api.core.ApiFunction<io.grpc.ManagedChannelBuilder,io.grpc.ManagedChannelBuilder> getChannelConfigurator();
    method public com.google.cloud.firestore.telemetry.DisabledTraceUtil.Span startSpan(String);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span startSpan(String, com.google.cloud.firestore.telemetry.TraceUtil.Context);
  }

  @com.google.api.core.InternalApi public class EnabledTraceUtil implements com.google.cloud.firestore.telemetry.TraceUtil {
    method @NonNull public com.google.cloud.firestore.telemetry.TraceUtil.Context currentContext();
    method @NonNull public com.google.cloud.firestore.telemetry.TraceUtil.Span currentSpan();
    method @Nullable public com.google.api.core.ApiFunction<io.grpc.ManagedChannelBuilder,io.grpc.ManagedChannelBuilder> getChannelConfigurator();
    method public io.opentelemetry.api.OpenTelemetry getOpenTelemetry();
    method public com.google.cloud.firestore.telemetry.EnabledTraceUtil.Span startSpan(String);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span startSpan(String, com.google.cloud.firestore.telemetry.TraceUtil.Context);
  }

  public class EnabledTraceUtil.OpenTelemetryGrpcChannelConfigurator implements com.google.api.core.ApiFunction<io.grpc.ManagedChannelBuilder,io.grpc.ManagedChannelBuilder> {
    ctor public EnabledTraceUtil.OpenTelemetryGrpcChannelConfigurator();
    method public io.grpc.ManagedChannelBuilder apply(io.grpc.ManagedChannelBuilder);
  }

  @com.google.api.core.InternalApi public interface MetricsUtil {
    method public void addMetricsTracerFactory(List<com.google.api.gax.tracing.ApiTracerFactory>);
    method public com.google.cloud.firestore.telemetry.MetricsUtil.MetricsContext createMetricsContext(String);
    method public static com.google.cloud.firestore.telemetry.MetricsUtil getInstance(@NonNull com.google.cloud.firestore.FirestoreOptions);
    method public static boolean shouldCreateEnabledInstance();
    field public static final String ENABLE_METRICS_ENV_VAR = "FIRESTORE_ENABLE_METRICS";
    field public static final Logger logger;
  }

  public static interface MetricsUtil.MetricsContext {
    method public void incrementCounter();
    method public <T> void recordCounterAtFuture(com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType, com.google.api.core.ApiFuture<T>);
    method public void recordLatency(com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType);
    method public void recordLatency(com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType, Throwable);
    method public <T> void recordLatencyAtFuture(com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType, com.google.api.core.ApiFuture<T>);
  }

  @com.google.api.core.InternalApi public interface TelemetryConstants {
    field public static final Set<io.opentelemetry.api.common.AttributeKey> COMMON_ATTRIBUTES;
    field public static final String FIRESTORE_METER_NAME = "java_firestore";
    field public static final Set<String> FIRESTORE_METRICS;
    field public static final Set<String> FIRESTORE_RESOURCE_LABELS;
    field public static final String FIRESTORE_RESOURCE_TYPE = "firestore_client_raw";
    field public static final String GAX_METER_NAME = "gax-java";
    field public static final Set<String> GAX_METRICS;
    field public static final String METHOD_NAME_AGGREGATION_QUERY_GET = "AggregationQuery.Get";
    field public static final String METHOD_NAME_BATCH_COMMIT = "Batch.Commit";
    field public static final String METHOD_NAME_BATCH_GET_DOCUMENTS = "BatchGetDocuments";
    field public static final String METHOD_NAME_BATCH_GET_DOCUMENTS_GET_ALL = "BatchGetDocuments.GetAll";
    field public static final String METHOD_NAME_BATCH_GET_DOCUMENTS_TRANSACTIONAL = "BatchGetDocuments.Transactional";
    field public static final String METHOD_NAME_BULK_WRITER_COMMIT = "BulkWriter.Commit";
    field public static final String METHOD_NAME_COL_REF_ADD = "CollectionReference.Add";
    field public static final String METHOD_NAME_COL_REF_LIST_DOCUMENTS = "CollectionReference.ListDocuments";
    field public static final String METHOD_NAME_DOC_REF_CREATE = "DocumentReference.Create";
    field public static final String METHOD_NAME_DOC_REF_DELETE = "DocumentReference.Delete";
    field public static final String METHOD_NAME_DOC_REF_GET = "DocumentReference.Get";
    field public static final String METHOD_NAME_DOC_REF_LIST_COLLECTIONS = "DocumentReference.ListCollections";
    field public static final String METHOD_NAME_DOC_REF_SET = "DocumentReference.Set";
    field public static final String METHOD_NAME_DOC_REF_UPDATE = "DocumentReference.Update";
    field public static final String METHOD_NAME_EXECUTE_PIPELINE = "ExecutePipeline";
    field public static final String METHOD_NAME_EXECUTE_PIPELINE_EXECUTE = "ExecutePipeline.Execute";
    field public static final String METHOD_NAME_PARTITION_QUERY = "PartitionQuery";
    field public static final String METHOD_NAME_PIPELINE_EXECUTE = "Pipeline.Execute";
    field public static final String METHOD_NAME_QUERY_GET = "Query.Get";
    field public static final String METHOD_NAME_RUN_AGGREGATION_QUERY = "RunAggregationQuery";
    field public static final String METHOD_NAME_RUN_AGGREGATION_QUERY_EXPLAIN = "RunAggregationQuery.Explain";
    field public static final String METHOD_NAME_RUN_AGGREGATION_QUERY_GET = "RunAggregationQuery.Get";
    field public static final String METHOD_NAME_RUN_AGGREGATION_QUERY_TRANSACTIONAL = "RunAggregationQuery.Transactional";
    field public static final String METHOD_NAME_RUN_QUERY = "RunQuery";
    field public static final String METHOD_NAME_RUN_QUERY_EXPLAIN = "RunQuery.Explain";
    field public static final String METHOD_NAME_RUN_QUERY_GET = "RunQuery.Get";
    field public static final String METHOD_NAME_RUN_QUERY_TRANSACTIONAL = "RunQuery.Transactional";
    field public static final String METHOD_NAME_RUN_TRANSACTION = "RunTransaction";
    field public static final String METHOD_NAME_TRANSACTION_BEGIN = "Transaction.Begin";
    field public static final String METHOD_NAME_TRANSACTION_COMMIT = "Transaction.Commit";
    field public static final String METHOD_NAME_TRANSACTION_GET_AGGREGATION_QUERY = "Transaction.Get.AggregationQuery";
    field public static final String METHOD_NAME_TRANSACTION_GET_DOCUMENT = "Transaction.Get.Document";
    field public static final String METHOD_NAME_TRANSACTION_GET_DOCUMENTS = "Transaction.Get.Documents";
    field public static final String METHOD_NAME_TRANSACTION_GET_QUERY = "Transaction.Get.Query";
    field public static final String METHOD_NAME_TRANSACTION_ROLLBACK = "Transaction.Rollback";
    field public static final String METHOD_NAME_TRANSACTION_RUN = "Transaction.Run";
    field public static final io.opentelemetry.api.common.AttributeKey<String> METRIC_ATTRIBUTE_KEY_CLIENT_UID;
    field public static final io.opentelemetry.api.common.AttributeKey<String> METRIC_ATTRIBUTE_KEY_LIBRARY_NAME;
    field public static final io.opentelemetry.api.common.AttributeKey<String> METRIC_ATTRIBUTE_KEY_LIBRARY_VERSION;
    field public static final io.opentelemetry.api.common.AttributeKey<String> METRIC_ATTRIBUTE_KEY_METHOD;
    field public static final io.opentelemetry.api.common.AttributeKey<String> METRIC_ATTRIBUTE_KEY_STATUS;
    field public static final String METRIC_NAME_ATTEMPT_COUNT = "attempt_count";
    field public static final String METRIC_NAME_ATTEMPT_LATENCY = "attempt_latency";
    field public static final String METRIC_NAME_END_TO_END_LATENCY = "end_to_end_latency";
    field public static final String METRIC_NAME_FIRST_RESPONSE_LATENCY = "first_response_latency";
    field public static final String METRIC_NAME_OPERATION_COUNT = "operation_count";
    field public static final String METRIC_NAME_OPERATION_LATENCY = "operation_latency";
    field public static final String METRIC_NAME_TRANSACTION_ATTEMPT_COUNT = "transaction_attempt_count";
    field public static final String METRIC_NAME_TRANSACTION_LATENCY = "transaction_latency";
    field public static final String METRIC_PREFIX = "custom.googleapis.com/internal/client";
    field public static final String RESOURCE_KEY_DATABASE_ID = "database_id";
    field public static final String RESOURCE_KEY_LOCATION = "location";
    field public static final String RESOURCE_KEY_RESOURCE_CONTAINER = "resource_container";
  }

  public enum TelemetryConstants.MetricType {
    enum_constant public static final com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType END_TO_END_LATENCY;
    enum_constant public static final com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType FIRST_RESPONSE_LATENCY;
    enum_constant public static final com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType TRANSACTION_ATTEMPT_COUNT;
    enum_constant public static final com.google.cloud.firestore.telemetry.TelemetryConstants.MetricType TRANSACTION_LATENCY;
  }

  public interface TraceUtil {
    method @NonNull public com.google.cloud.firestore.telemetry.TraceUtil.Context currentContext();
    method @NonNull public com.google.cloud.firestore.telemetry.TraceUtil.Span currentSpan();
    method @Nullable public com.google.api.core.ApiFunction<io.grpc.ManagedChannelBuilder,io.grpc.ManagedChannelBuilder> getChannelConfigurator();
    method @com.google.api.core.InternalApi public static com.google.cloud.firestore.telemetry.TraceUtil getInstance(@NonNull com.google.cloud.firestore.FirestoreOptions);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span startSpan(String);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span startSpan(String, com.google.cloud.firestore.telemetry.TraceUtil.Context);
    field public static final String ATTRIBUTE_KEY_ATTEMPT = "attempt";
    field public static final String ATTRIBUTE_KEY_ATTEMPTS_ALLOWED = "attempts_allowed";
    field public static final String ATTRIBUTE_KEY_ATTEMPTS_REMAINING = "attempts_remaining";
    field public static final String ATTRIBUTE_KEY_DOC_COUNT = "doc_count";
    field public static final String ATTRIBUTE_KEY_IS_RETRY_WITH_CURSOR = "retry_query_with_cursor";
    field public static final String ATTRIBUTE_KEY_IS_TRANSACTIONAL = "transactional";
    field public static final String ATTRIBUTE_KEY_NUM_RESPONSES = "response_count";
    field public static final String ATTRIBUTE_KEY_TRANSACTION_TYPE = "transaction_type";
    field public static final String ATTRIBUTE_SERVICE_PREFIX = "gcp.firestore.";
    field public static final String ENABLE_TRACING_ENV_VAR = "FIRESTORE_ENABLE_TRACING";
    field public static final String LIBRARY_NAME = "com.google.cloud.firestore";
  }

  public static interface TraceUtil.Context {
    method public com.google.cloud.firestore.telemetry.TraceUtil.Scope makeCurrent();
  }

  public static interface TraceUtil.Scope {
    method public void close();
  }

  public static interface TraceUtil.Span {
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span addEvent(String);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span addEvent(String, Map<String,Object>);
    method public void end();
    method public void end(Throwable);
    method public <T> void endAtFuture(com.google.api.core.ApiFuture<T>);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Scope makeCurrent();
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span setAttribute(String, boolean);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span setAttribute(String, int);
    method public com.google.cloud.firestore.telemetry.TraceUtil.Span setAttribute(String, String);
  }

}

package @javax.annotation.Generated("by gapic-generator-java") com.google.cloud.firestore.v1 {

  @javax.annotation.Generated("by gapic-generator-java") public class FirestoreClient implements com.google.api.gax.core.BackgroundResource {
    ctor protected FirestoreClient(com.google.cloud.firestore.v1.FirestoreSettings);
    ctor protected FirestoreClient(com.google.cloud.firestore.v1.stub.FirestoreStub);
    method public boolean awaitTermination(long, TimeUnit);
    method public final com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsCallable();
    method public final com.google.firestore.v1.BatchWriteResponse batchWrite(com.google.firestore.v1.BatchWriteRequest);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteCallable();
    method public final com.google.firestore.v1.BeginTransactionResponse beginTransaction(com.google.firestore.v1.BeginTransactionRequest);
    method public final com.google.firestore.v1.BeginTransactionResponse beginTransaction(String);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionCallable();
    method public final void close();
    method public final com.google.firestore.v1.CommitResponse commit(com.google.firestore.v1.CommitRequest);
    method public final com.google.firestore.v1.CommitResponse commit(String, List<com.google.firestore.v1.Write>);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitCallable();
    method public static final com.google.cloud.firestore.v1.FirestoreClient create();
    method public static final com.google.cloud.firestore.v1.FirestoreClient create(com.google.cloud.firestore.v1.FirestoreSettings);
    method public static final com.google.cloud.firestore.v1.FirestoreClient create(com.google.cloud.firestore.v1.stub.FirestoreStub);
    method public final com.google.firestore.v1.Document createDocument(com.google.firestore.v1.CreateDocumentRequest);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentCallable();
    method public final void deleteDocument(com.google.firestore.v1.DeleteDocumentRequest);
    method public final void deleteDocument(String);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentCallable();
    method public final com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineCallable();
    method public final com.google.firestore.v1.Document getDocument(com.google.firestore.v1.GetDocumentRequest);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentCallable();
    method public final com.google.cloud.firestore.v1.FirestoreSettings getSettings();
    method public com.google.cloud.firestore.v1.stub.FirestoreStub getStub();
    method public boolean isShutdown();
    method public boolean isTerminated();
    method public final com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(com.google.firestore.v1.ListCollectionIdsRequest);
    method public final com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(String);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse> listCollectionIdsCallable();
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable();
    method public final com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse listDocuments(com.google.firestore.v1.ListDocumentsRequest);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse> listDocumentsCallable();
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable();
    method public final com.google.api.gax.rpc.BidiStreamingCallable<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenCallable();
    method public final com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse partitionQuery(com.google.firestore.v1.PartitionQueryRequest);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse> partitionQueryCallable();
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.PartitionQueryRequest,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQueryPagedCallable();
    method public final void rollback(com.google.firestore.v1.RollbackRequest);
    method public final void rollback(String, com.google.protobuf.ByteString);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackCallable();
    method public final com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQueryCallable();
    method public final com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQueryCallable();
    method public void shutdown();
    method public void shutdownNow();
    method public final com.google.firestore.v1.Document updateDocument(com.google.firestore.v1.Document, com.google.firestore.v1.DocumentMask);
    method public final com.google.firestore.v1.Document updateDocument(com.google.firestore.v1.UpdateDocumentRequest);
    method public final com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentCallable();
    method public final com.google.api.gax.rpc.BidiStreamingCallable<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeCallable();
  }

  public static class FirestoreClient.ListCollectionIdsFixedSizeCollection extends com.google.api.gax.paging.AbstractFixedSizeCollection<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,String,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPage,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsFixedSizeCollection> {
    method protected com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsFixedSizeCollection createCollection(List<com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPage>, int);
  }

  public static class FirestoreClient.ListCollectionIdsPage extends com.google.api.gax.paging.AbstractPage<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,String,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPage> {
    method protected com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPage createPage(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,String>, com.google.firestore.v1.ListCollectionIdsResponse);
    method public com.google.api.core.ApiFuture<com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPage> createPageAsync(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,String>, com.google.api.core.ApiFuture<com.google.firestore.v1.ListCollectionIdsResponse>);
  }

  public static class FirestoreClient.ListCollectionIdsPagedResponse extends com.google.api.gax.paging.AbstractPagedListResponse<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,String,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPage,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsFixedSizeCollection> {
    method public static com.google.api.core.ApiFuture<com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> createAsync(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,String>, com.google.api.core.ApiFuture<com.google.firestore.v1.ListCollectionIdsResponse>);
  }

  public static class FirestoreClient.ListDocumentsFixedSizeCollection extends com.google.api.gax.paging.AbstractFixedSizeCollection<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.firestore.v1.Document,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPage,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsFixedSizeCollection> {
    method protected com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsFixedSizeCollection createCollection(List<com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPage>, int);
  }

  public static class FirestoreClient.ListDocumentsPage extends com.google.api.gax.paging.AbstractPage<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.firestore.v1.Document,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPage> {
    method protected com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPage createPage(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.firestore.v1.Document>, com.google.firestore.v1.ListDocumentsResponse);
    method public com.google.api.core.ApiFuture<com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPage> createPageAsync(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.firestore.v1.Document>, com.google.api.core.ApiFuture<com.google.firestore.v1.ListDocumentsResponse>);
  }

  public static class FirestoreClient.ListDocumentsPagedResponse extends com.google.api.gax.paging.AbstractPagedListResponse<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.firestore.v1.Document,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPage,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsFixedSizeCollection> {
    method public static com.google.api.core.ApiFuture<com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> createAsync(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.firestore.v1.Document>, com.google.api.core.ApiFuture<com.google.firestore.v1.ListDocumentsResponse>);
  }

  public static class FirestoreClient.PartitionQueryFixedSizeCollection extends com.google.api.gax.paging.AbstractFixedSizeCollection<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.firestore.v1.Cursor,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPage,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryFixedSizeCollection> {
    method protected com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryFixedSizeCollection createCollection(List<com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPage>, int);
  }

  public static class FirestoreClient.PartitionQueryPage extends com.google.api.gax.paging.AbstractPage<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.firestore.v1.Cursor,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPage> {
    method protected com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPage createPage(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.firestore.v1.Cursor>, com.google.firestore.v1.PartitionQueryResponse);
    method public com.google.api.core.ApiFuture<com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPage> createPageAsync(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.firestore.v1.Cursor>, com.google.api.core.ApiFuture<com.google.firestore.v1.PartitionQueryResponse>);
  }

  public static class FirestoreClient.PartitionQueryPagedResponse extends com.google.api.gax.paging.AbstractPagedListResponse<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.firestore.v1.Cursor,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPage,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryFixedSizeCollection> {
    method public static com.google.api.core.ApiFuture<com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> createAsync(com.google.api.gax.rpc.PageContext<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.firestore.v1.Cursor>, com.google.api.core.ApiFuture<com.google.firestore.v1.PartitionQueryResponse>);
  }

  @javax.annotation.Generated("by gapic-generator-java") public class FirestoreSettings extends com.google.api.gax.rpc.ClientSettings<com.google.cloud.firestore.v1.FirestoreSettings> {
    ctor protected FirestoreSettings(com.google.cloud.firestore.v1.FirestoreSettings.Builder);
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitSettings();
    method public static final com.google.cloud.firestore.v1.FirestoreSettings create(com.google.cloud.firestore.v1.stub.FirestoreStubSettings);
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentSettings();
    method public static com.google.api.gax.rpc.ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder();
    method public static com.google.api.gax.core.GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder();
    method public static com.google.api.gax.core.InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder();
    method public static com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder();
    method @com.google.api.core.BetaApi public static com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder();
    method public static com.google.api.gax.rpc.TransportChannelProvider defaultTransportChannelProvider();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineSettings();
    method public static String getDefaultEndpoint();
    method public static List<String> getDefaultServiceScopes();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentSettings();
    method public com.google.api.gax.rpc.PagedCallSettings<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsSettings();
    method public com.google.api.gax.rpc.PagedCallSettings<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenSettings();
    method public static com.google.cloud.firestore.v1.FirestoreSettings.Builder newBuilder();
    method public static com.google.cloud.firestore.v1.FirestoreSettings.Builder newBuilder(com.google.api.gax.rpc.ClientContext);
    method public static com.google.cloud.firestore.v1.FirestoreSettings.Builder newHttpJsonBuilder();
    method public com.google.api.gax.rpc.PagedCallSettings<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQuerySettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQuerySettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQuerySettings();
    method public com.google.cloud.firestore.v1.FirestoreSettings.Builder toBuilder();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeSettings();
  }

  public static class FirestoreSettings.Builder extends com.google.api.gax.rpc.ClientSettings.Builder<com.google.cloud.firestore.v1.FirestoreSettings,com.google.cloud.firestore.v1.FirestoreSettings.Builder> {
    ctor protected FirestoreSettings.Builder();
    ctor protected FirestoreSettings.Builder(com.google.api.gax.rpc.ClientContext);
    ctor protected FirestoreSettings.Builder(com.google.cloud.firestore.v1.FirestoreSettings);
    ctor protected FirestoreSettings.Builder(com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder);
    method public com.google.cloud.firestore.v1.FirestoreSettings.Builder applyToAllUnaryMethods(com.google.api.core.ApiFunction<com.google.api.gax.rpc.UnaryCallSettings.Builder<?,?>,Void>);
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionSettings();
    method public com.google.cloud.firestore.v1.FirestoreSettings build();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentSettings();
    method public com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder getStubSettingsBuilder();
    method public com.google.api.gax.rpc.PagedCallSettings.Builder<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsSettings();
    method public com.google.api.gax.rpc.PagedCallSettings.Builder<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings.Builder<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenSettings();
    method public com.google.api.gax.rpc.PagedCallSettings.Builder<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQuerySettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQuerySettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQuerySettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings.Builder<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeSettings();
  }

}

package com.google.cloud.firestore.v1.stub {

  @javax.annotation.Generated("by gapic-generator-java") public abstract class FirestoreStub implements com.google.api.gax.core.BackgroundResource {
    ctor public FirestoreStub();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionCallable();
    method public abstract void close();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse> listCollectionIdsCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse> listDocumentsCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable();
    method public com.google.api.gax.rpc.BidiStreamingCallable<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse> partitionQueryCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.PartitionQueryRequest,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQueryPagedCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQueryCallable();
    method public com.google.api.gax.rpc.ServerStreamingCallable<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQueryCallable();
    method public com.google.api.gax.rpc.UnaryCallable<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentCallable();
    method public com.google.api.gax.rpc.BidiStreamingCallable<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeCallable();
  }

  @javax.annotation.Generated("by gapic-generator-java") public class FirestoreStubSettings extends com.google.api.gax.rpc.StubSettings<com.google.cloud.firestore.v1.stub.FirestoreStubSettings> {
    ctor protected FirestoreStubSettings(com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder);
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentSettings();
    method public com.google.cloud.firestore.v1.stub.FirestoreStub createStub();
    method public static com.google.api.gax.rpc.ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder();
    method public static com.google.api.gax.core.GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder();
    method public static com.google.api.gax.core.InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder();
    method public static com.google.api.gax.rpc.ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder();
    method public static com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder();
    method public static com.google.api.gax.rpc.ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder();
    method @com.google.api.core.BetaApi public static com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder();
    method public static com.google.api.gax.rpc.TransportChannelProvider defaultTransportChannelProvider();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineSettings();
    method @com.google.api.core.ObsoleteApi("Use getEndpoint() instead") public static String getDefaultEndpoint();
    method public static String getDefaultMtlsEndpoint();
    method public static List<String> getDefaultServiceScopes();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentSettings();
    method public String getServiceName();
    method public com.google.api.gax.rpc.PagedCallSettings<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsSettings();
    method public com.google.api.gax.rpc.PagedCallSettings<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenSettings();
    method public static com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder newBuilder();
    method public static com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder newBuilder(com.google.api.gax.rpc.ClientContext);
    method public static com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder newHttpJsonBuilder();
    method public com.google.api.gax.rpc.PagedCallSettings<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQuerySettings();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQuerySettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQuerySettings();
    method public com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder toBuilder();
    method public com.google.api.gax.rpc.UnaryCallSettings<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeSettings();
  }

  public static class FirestoreStubSettings.Builder extends com.google.api.gax.rpc.StubSettings.Builder<com.google.cloud.firestore.v1.stub.FirestoreStubSettings,com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder> {
    ctor protected FirestoreStubSettings.Builder();
    ctor protected FirestoreStubSettings.Builder(com.google.api.gax.rpc.ClientContext);
    ctor protected FirestoreStubSettings.Builder(com.google.cloud.firestore.v1.stub.FirestoreStubSettings);
    method public com.google.cloud.firestore.v1.stub.FirestoreStubSettings.Builder applyToAllUnaryMethods(com.google.api.core.ApiFunction<com.google.api.gax.rpc.UnaryCallSettings.Builder<?,?>,Void>);
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.BatchWriteRequest,com.google.firestore.v1.BatchWriteResponse> batchWriteSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionSettings();
    method public com.google.cloud.firestore.v1.stub.FirestoreStubSettings build();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.ExecutePipelineRequest,com.google.firestore.v1.ExecutePipelineResponse> executePipelineSettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentSettings();
    method public com.google.api.gax.rpc.PagedCallSettings.Builder<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsSettings();
    method public com.google.api.gax.rpc.PagedCallSettings.Builder<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse,com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse> listDocumentsSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings.Builder<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenSettings();
    method public com.google.api.gax.rpc.PagedCallSettings.Builder<com.google.firestore.v1.PartitionQueryRequest,com.google.firestore.v1.PartitionQueryResponse,com.google.cloud.firestore.v1.FirestoreClient.PartitionQueryPagedResponse> partitionQuerySettings();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.RollbackRequest,com.google.protobuf.Empty> rollbackSettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.RunAggregationQueryRequest,com.google.firestore.v1.RunAggregationQueryResponse> runAggregationQuerySettings();
    method public com.google.api.gax.rpc.ServerStreamingCallSettings.Builder<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQuerySettings();
    method public com.google.common.collect.ImmutableList<com.google.api.gax.rpc.UnaryCallSettings.Builder<?,?>> unaryMethodSettingsBuilders();
    method public com.google.api.gax.rpc.UnaryCallSettings.Builder<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentSettings();
    method public com.google.api.gax.rpc.StreamingCallSettings.Builder<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeSettings();
  }

  @javax.annotation.Generated("by gapic-generator-java") public class GrpcFirestoreCallableFactory implements com.google.api.gax.grpc.GrpcStubCallableFactory {
    ctor public GrpcFirestoreCallableFactory();
    method public <RequestT, ResponseT> com.google.api.gax.rpc.UnaryCallable<RequestT,ResponseT> createBatchingCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.BatchingCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT> com.google.api.gax.rpc.BidiStreamingCallable<RequestT,ResponseT> createBidiStreamingCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.StreamingCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT> com.google.api.gax.rpc.ClientStreamingCallable<RequestT,ResponseT> createClientStreamingCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.StreamingCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT, MetadataT> com.google.api.gax.rpc.OperationCallable<RequestT,ResponseT,MetadataT> createOperationCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,com.google.longrunning.Operation>, com.google.api.gax.rpc.OperationCallSettings<RequestT,ResponseT,MetadataT>, com.google.api.gax.rpc.ClientContext, com.google.longrunning.stub.OperationsStub);
    method public <RequestT, ResponseT, PagedListResponseT> com.google.api.gax.rpc.UnaryCallable<RequestT,PagedListResponseT> createPagedCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.PagedCallSettings<RequestT,ResponseT,PagedListResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT> com.google.api.gax.rpc.ServerStreamingCallable<RequestT,ResponseT> createServerStreamingCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ServerStreamingCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT> com.google.api.gax.rpc.UnaryCallable<RequestT,ResponseT> createUnaryCallable(com.google.api.gax.grpc.GrpcCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.UnaryCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
  }

  @javax.annotation.Generated("by gapic-generator-java") public class GrpcFirestoreStub extends com.google.cloud.firestore.v1.stub.FirestoreStub {
    ctor protected GrpcFirestoreStub(com.google.cloud.firestore.v1.stub.FirestoreStubSettings, com.google.api.gax.rpc.ClientContext);
    ctor protected GrpcFirestoreStub(com.google.cloud.firestore.v1.stub.FirestoreStubSettings, com.google.api.gax.rpc.ClientContext, com.google.api.gax.grpc.GrpcStubCallableFactory);
    method public boolean awaitTermination(long, TimeUnit);
    method public final void close();
    method public static final com.google.cloud.firestore.v1.stub.GrpcFirestoreStub create(com.google.api.gax.rpc.ClientContext);
    method public static final com.google.cloud.firestore.v1.stub.GrpcFirestoreStub create(com.google.api.gax.rpc.ClientContext, com.google.api.gax.grpc.GrpcStubCallableFactory);
    method public static final com.google.cloud.firestore.v1.stub.GrpcFirestoreStub create(com.google.cloud.firestore.v1.stub.FirestoreStubSettings);
    method public com.google.longrunning.stub.GrpcOperationsStub getOperationsStub();
    method public boolean isShutdown();
    method public boolean isTerminated();
    method public void shutdown();
    method public void shutdownNow();
  }

  @javax.annotation.Generated("by gapic-generator-java") public class HttpJsonFirestoreCallableFactory implements com.google.api.gax.httpjson.HttpJsonStubCallableFactory<com.google.longrunning.Operation,com.google.api.gax.httpjson.longrunning.stub.OperationsStub> {
    ctor public HttpJsonFirestoreCallableFactory();
    method public <RequestT, ResponseT> com.google.api.gax.rpc.UnaryCallable<RequestT,ResponseT> createBatchingCallable(com.google.api.gax.httpjson.HttpJsonCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.BatchingCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT, MetadataT> com.google.api.gax.rpc.OperationCallable<RequestT,ResponseT,MetadataT> createOperationCallable(com.google.api.gax.httpjson.HttpJsonCallSettings<RequestT,com.google.longrunning.Operation>, com.google.api.gax.rpc.OperationCallSettings<RequestT,ResponseT,MetadataT>, com.google.api.gax.rpc.ClientContext, com.google.api.gax.httpjson.longrunning.stub.OperationsStub);
    method public <RequestT, ResponseT, PagedListResponseT> com.google.api.gax.rpc.UnaryCallable<RequestT,PagedListResponseT> createPagedCallable(com.google.api.gax.httpjson.HttpJsonCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.PagedCallSettings<RequestT,ResponseT,PagedListResponseT>, com.google.api.gax.rpc.ClientContext);
    method public <RequestT, ResponseT> com.google.api.gax.rpc.UnaryCallable<RequestT,ResponseT> createUnaryCallable(com.google.api.gax.httpjson.HttpJsonCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.UnaryCallSettings<RequestT,ResponseT>, com.google.api.gax.rpc.ClientContext);
  }

  @javax.annotation.Generated("by gapic-generator-java") public class HttpJsonFirestoreStub extends com.google.cloud.firestore.v1.stub.FirestoreStub {
    ctor protected HttpJsonFirestoreStub(com.google.cloud.firestore.v1.stub.FirestoreStubSettings, com.google.api.gax.rpc.ClientContext);
    ctor protected HttpJsonFirestoreStub(com.google.cloud.firestore.v1.stub.FirestoreStubSettings, com.google.api.gax.rpc.ClientContext, com.google.api.gax.httpjson.HttpJsonStubCallableFactory);
    method public boolean awaitTermination(long, TimeUnit);
    method public final void close();
    method public static final com.google.cloud.firestore.v1.stub.HttpJsonFirestoreStub create(com.google.api.gax.rpc.ClientContext);
    method public static final com.google.cloud.firestore.v1.stub.HttpJsonFirestoreStub create(com.google.api.gax.rpc.ClientContext, com.google.api.gax.httpjson.HttpJsonStubCallableFactory);
    method public static final com.google.cloud.firestore.v1.stub.HttpJsonFirestoreStub create(com.google.cloud.firestore.v1.stub.FirestoreStubSettings);
    method @com.google.api.core.InternalApi public static List<com.google.api.gax.httpjson.ApiMethodDescriptor> getMethodDescriptors();
    method public boolean isShutdown();
    method public boolean isTerminated();
    method public void shutdown();
    method public void shutdownNow();
  }

}

