getResponse = (response) => {
    /** @type {!ee.data.DownloadId} */
    const ret = {docid: response['name'], token: ''};
    return ret;
  }
Get a Download ID.

@param {!Object} params An object containing download options with the
    following possible values:
  <table>
    <tr>
      <td><code> name: </code> a base name to use when constructing
        filenames. Only applicable when format is "ZIPPED_GEO_TIFF"
        (default), "ZIPPED_GEO_TIFF_PER_BAND", or filePerBand is true.
        Defaults to the image id (or "download" for computed images) when
        format is "ZIPPED_GEO_TIFF", "ZIPPED_GEO_TIFF_PER_BAND", or
        filePerBand is true, otherwise a random character string is
        generated. Band names are appended when filePerBand is true.</td>
    </tr>
    <tr>
      <td><code> bands: </code> a description of the bands to download. Must
        be an array of band names or an array of dictionaries, each with the
        following keys (optional parameters apply only when filePerBand is
        true):<ul style="list-style-type:none;">
          <li><code> id: </code> the name of the band, a string, required.
          <li><code> crs: </code> an optional CRS string defining the
            band projection.</li>
          <li><code> crs_transform: </code> an optional array of 6 numbers
            specifying an affine transform from the specified CRS, in
            row-major order: [xScale, xShearing, xTranslation, yShearing,
            yScale, yTranslation]</li>
          <li><code> dimensions: </code> an optional array of two integers
            defining the width and height to which the band is cropped.</li>
          <li><code> scale: </code> an optional number, specifying the scale
            in meters of the band; ignored if crs and crs_transform are
            specified.</li></ul></td>
    </tr>
    <tr>
      <td><code> crs: </code> a default CRS string to use for any bands that
        do not explicitly specify one.</td>
    </tr>
    <tr>
      <td><code> crs_transform: </code> a default affine transform to use for
        any bands that do not specify one, of the same format as the
        <code>crs_transform</code> of bands.</td>
    </tr>
    <tr>
      <td><code> dimensions: </code> default image cropping dimensions to use
        for any bands that do not specify them.</td>
    </tr>
    <tr>
      <td><code> scale: </code> a default scale to use for any bands that do
        not specify one; ignored if <code>crs</code> and
        <code>crs_transform</code> are specified.</td>
    </tr>
    <tr>
      <td><code> region: </code> a polygon specifying a region to download;
        ignored if <code>crs</code> and <code>crs_transform</code> is
        specified.</td>
    </tr>
    <tr>
      <td><code> filePerBand: </code> whether to produce a separate GeoTIFF
        per band (boolean). Defaults to true. If false, a single GeoTIFF is
        produced and all band-level transformations will be ignored.  Note
        that this is ignored if the format is "ZIPPED_GEO_TIFF" or
         "ZIPPED_GEO_TIFF_PER_BAND".</td>
    </tr>
    <tr>
      <td><code> format: </code> the download format. One of:
        <ul>
          <li> "ZIPPED_GEO_TIFF" (GeoTIFF file wrapped in a zip file,
            default)</li>
          <li> "ZIPPED_GEO_TIFF_PER_BAND" (Multiple GeoTIFF files wrapped
            in a zip file)</li>
          <li> "NPY" (NumPy binary format)</li>
        </ul>
        If "GEO_TIFF" or "NPY", filePerBand and all band-level
        transformations will be ignored. Loading a NumPy output results in
        a structured array.</td>
    </tr>
    <tr>
      <td><code> id: </code> deprecated, use image parameter.</td>
  </table>
@param {function(?ee.data.DownloadId, string=)=} opt_callback An optional
    callback. If not supplied, the call is made synchronously.
@return {?ee.data.DownloadId} A download id and token, or null if a callback
    is specified.
@export