code: def celery_remove(
      self: "LocalCeleryQueue",
      revs: Collection[str],
  ) -> List[str]:
      """Remove the specified entries from the queue.
  
      Arguments:
          revs: Stash revisions or queued exp names to be removed.
  
      Returns:
          Revisions (or names) which were removed.
      """
  
      match_results = self.match_queue_entry_by_name(
          revs, self.iter_queued(), self.iter_done()
      )
  
      remained: List[str] = []
      removed: List[str] = []
      entry_to_remove: List["QueueEntry"] = []
      for name, entry in match_results.items():
          if entry:
              entry_to_remove.append(entry)
              removed.append(name)
          else:
              remained.append(name)
  
      if remained:
          raise UnresolvedExpNamesError(remained)
  
      if entry_to_remove:
          remove_tasks(self, entry_to_remove)
  
      return removed
  
imports: from typing import TYPE_CHECKING, Collection, Dict, Iterable, List, Set, Union
  from dvc.repo.experiments.exceptions import UnresolvedExpNamesError
  from dvc.repo.experiments.queue.base import QueueDoneResult
label_desc: Use image node_id 4 for calling a global function with example usage: celery_remove(revs) and returns: removed