   #   a file with the same name that already exsits; instead the contents
   #   will be written to a similarly named file (e.g. "notes (1).txt"
   #   instead of "notes.txt")
-  # @param {function(?Dropbox.ApiError, ?Dropbox.Stat)} callback called with
+  # @param {?function(?Dropbox.ApiError, ?Dropbox.Stat)} callback called with
   #   the result of the /files (POST) HTTP request; the second paramter is a
   #   Dropbox.Stat instance describing the newly created file, and the first
   #   parameter is null

    xhr = new Dropbox.Xhr 'POST', "#{@urls.restore}/#{@urlEncodePath(path)}"
    xhr.setParams(rev: versionTag).signWithOauth @oauth
    @dispatchXhr xhr, (error, metadata) ->
      callback error, Dropbox.Stat.parse(metadata)

  # Alias for "revertFile" that matches the HTTP API.
  restore: (path, versionTag, callback) ->

    xhr = new Dropbox.Xhr 'POST', "#{@urls.putFile}/#{@urlEncodePath(path)}"
    xhr.setBody(data).setParams(params).signWithOauth(@oauth)
    @dispatchXhr xhr, (error, metadata) ->
      callback error, Dropbox.Stat.parse(metadata) if callback

  # Atomic step in a resumable file upload.
  #
