async allocate(deviceConfig) {
    const deviceQuery = deviceConfig.device;
    const recipe = await this._recipeQuerying.getRecipeFromQuery(deviceQuery);
    this._assertRecipe(deviceQuery, recipe);

    let instance = this._genyRegistry.findFreeInstance(recipe);
    if (!instance) {
      const instanceName = `Detox.${this._detoxSessionId}.${this._instanceCounter++}`;
      instance = await this._instanceLauncher.launch(recipe, instanceName);
      this._genyRegistry.addInstance(instance, recipe);
    }

    return {
      id: instance.uuid,
      adbName: instance.adbName,
      name: instance.name,
      instance,
    };
  }
@param deviceConfig { Object }
@return {Promise<GenycloudEmulatorCookie>}