code: def output(key: str) -> ArtifactPlaceholder:
      """Returns a Placeholder that represents an output artifact.
  
      It is the same as input(...) function, except it is for output artifacts.
  
      Args:
        key: The key of the output artifact.
  
      Returns:
        A Placeholder that supports
          1. Rendering the whole artifact as text_format.
             Example: output('model')
          2. Accessing a specific index using [index], if multiple artifacts are
             associated with the given key. If not specified, default to the first
             artifact.
             Example: output('model')[0]
          3. Getting the URI of an artifact through .uri property.
             Example: output('model').uri or output('model')[0].uri
          4. Getting the URI of a specific split of an artifact using
             .split_uri(split_name) method.
             Example: output('examples')[0].split_uri('train')
          5. Getting the value of a primitive artifact through .value property.
             Example: output('primitive').value
          6. Concatenating with other placeholders or strings.
             Example: output('model').uri + '/model/' + exec_property('version')
      """
      return ArtifactPlaceholder(key, is_input=False)
  
imports: from __future__ import annotations
  from typing import Any, Optional, Type
  from tfx.dsl.placeholder import placeholder_base
  from tfx.proto.orchestration import placeholder_pb2
label_desc: Use image node_id 2 for calling a global function with example usage: output(key) and returns: ArtifactPlaceholder