class_docstr: An EnvironmentCollector is a specific data collector from each document.
  
  It gathers data and stores :py:class:`BuildEnvironment
  <sphinx.environment.BuildEnvironment>` as a database.  Examples of specific
  data would be images, download files, section titles, metadatas, index
  entries and toctrees, etc.
code: def enable(self, app: Sphinx) -> None:
      assert self.listener_ids is None
      self.listener_ids = {
          "doctree-read": app.connect("doctree-read", self.process_doc),
          "env-merge-info": app.connect(
              "env-merge-info", self.merge_other
          ),
          "env-purge-doc": app.connect("env-purge-doc", self.clear_doc),
          "env-get-updated": app.connect(
              "env-get-updated", self.get_updated_docs
          ),
          "env-get-outdated": app.connect(
              "env-get-outdated", self.get_outdated_docs
          ),
      }
  
file_path: sphinx/sphinx/environment/collectors/__init__.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING
label_desc: Use image node_id 1 for calling the EnvironmentCollector obj's underlying member method code with example usage: obj.enable(app) without return types