docs: function ThaliManager(
    expressPouchDB,
    PouchDB,
    localDbName,
    ecdhForLocalDevice,
    thaliPeerPoolInterface,
    networkType
    ) {
    var self = this;
  
    this._router = express.Router();
    this._router.all('*', this._connectionFilter.bind(this));
  
    this._router.all('*', salti(
      localDbName,
      ThaliManager._acl,
      this._resolveThaliId.bind(this),
      { dbPrefix: thaliConfig.BASE_DB_PATH }
    ));
  
    logger.debug('creating ThaliSendNotificationBasedOnReplication instance');
  
    this._thaliSendNotificationBasedOnReplication =
      new ThaliSendNotificationBasedOnReplication(
          this._router,
          ecdhForLocalDevice,
          thaliConfig.BEACON_MILLISECONDS_TO_EXPIRE,
          new PouchDB(localDbName));
    this._getPskIdToSecret =
      self._thaliSendNotificationBasedOnReplication.getPskIdToSecret();
    this._getPskIdToPublicKey =
      self._thaliSendNotificationBasedOnReplication.getPskIdToPublicKey();
  
    logger.debug('creating ThaliPullReplicationFromNotification instance');
  
    this._thaliPullReplicationFromNotification =
      new ThaliPullReplicationFromNotification(
          PouchDB,
          localDbName,
          thaliPeerPoolInterface,
          ecdhForLocalDevice);
    this._thaliPeerPoolInterface = thaliPeerPoolInterface;
  
    logger.debug('creating express pouchdb instance');
  
    this._router.use(thaliConfig.BASE_DB_PATH, expressPouchDB(PouchDB, {
      mode: 'minimumForPouchDB'
    }));
  
    this._networkType = networkType;
  
    this.state = ThaliManager.STATES.CREATED;
  }