public interface com.mongodb.client.MongoClient extends java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: com.mongodb.client.MongoClient
  super_class: java.lang.Object
{
  public abstract com.mongodb.client.MongoDatabase getDatabase(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/client/MongoDatabase;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      databaseName  

  public abstract com.mongodb.client.ClientSession startSession();
    descriptor: ()Lcom/mongodb/client/ClientSession;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract com.mongodb.client.ClientSession startSession(com.mongodb.ClientSessionOptions);
    descriptor: (Lcom/mongodb/ClientSessionOptions;)Lcom/mongodb/client/ClientSession;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      options  

  public abstract void close();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract com.mongodb.client.MongoIterable<java.lang.String> listDatabaseNames();
    descriptor: ()Lcom/mongodb/client/MongoIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lcom/mongodb/client/MongoIterable<Ljava/lang/String;>;

  public abstract com.mongodb.client.MongoIterable<java.lang.String> listDatabaseNames(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable<Ljava/lang/String;>;
    MethodParameters:
               Name  Flags
      clientSession  

  public abstract com.mongodb.client.ListDatabasesIterable<org.bson.Document> listDatabases();
    descriptor: ()Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lcom/mongodb/client/ListDatabasesIterable<Lorg/bson/Document;>;

  public abstract com.mongodb.client.ListDatabasesIterable<org.bson.Document> listDatabases(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ListDatabasesIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  

  public abstract <TResult> com.mongodb.client.ListDatabasesIterable<TResult> listDatabases(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListDatabasesIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  

  public abstract <TResult> com.mongodb.client.ListDatabasesIterable<TResult> listDatabases(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListDatabasesIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  
      resultClass    

  public abstract com.mongodb.client.ChangeStreamIterable<org.bson.Document> watch();
    descriptor: ()Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lcom/mongodb/client/ChangeStreamIterable<Lorg/bson/Document;>;

  public abstract <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  

  public abstract com.mongodb.client.ChangeStreamIterable<org.bson.Document> watch(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
          Name  Flags
      pipeline  

  public abstract <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     
      resultClass  

  public abstract com.mongodb.client.ChangeStreamIterable<org.bson.Document> watch(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  

  public abstract <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  
      resultClass    

  public abstract com.mongodb.client.ChangeStreamIterable<org.bson.Document> watch(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  
      pipeline       

  public abstract <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  
      pipeline       
      resultClass    

  public abstract com.mongodb.connection.ClusterDescription getClusterDescription();
    descriptor: ()Lcom/mongodb/connection/ClusterDescription;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "MongoClient.java"
    RuntimeVisibleAnnotations: 
      com.mongodb.annotations.Immutable()