class_docstr: Replace citation references by pending_xref nodes before the default
  docutils transform tries to resolve them.
class_docstr_tok: ["Replace","citation","references","by","pending_xref","nodes","before","the","default","docutils","transform","tries","to","resolve","them","."]
code: def apply(self, **kwargs: Any) -> None:
      domain = cast(CitationDomain, self.env.get_domain("citation"))
      for node in self.document.findall(nodes.citation_reference):
          target = node.astext()
          ref = pending_xref(
              target,
              refdomain="citation",
              reftype="ref",
              reftarget=target,
              refwarn=True,
              support_smartquotes=False,
              ids=node["ids"],
              classes=node.get("classes", []),
          )
          ref += nodes.inline(target, "[%s]" % target)
          copy_source_info(node, ref)
          node.replace_self(ref)
  
          # register reference node to domain
          domain.note_citation_reference(ref)
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any, cast
  from docutils import nodes
  from sphinx.addnodes import pending_xref
  from sphinx.domains import Domain
  from sphinx.locale import __
  from sphinx.transforms import SphinxTransform
  from sphinx.util import logging
  from sphinx.util.nodes import copy_source_info, make_refnode
label_desc: Use image node_id 1 for calling the CitationReferenceTransform obj's underlying member method code with example usage: obj.apply() without return types