code: def _create_proxy_state_manager(
      http_options: HTTPOptions = HTTPOptions(),
      head_node_id: str = HEAD_NODE_ID,
      cluster_node_info_cache=MockClusterNodeInfoCache(),
      actor_proxy_wrapper_class=FakeProxyWrapper,
      timer=Timer(),
  ) -> (ProxyStateManager, ClusterNodeInfoCache):
      return (
          ProxyStateManager(
              config=http_options,
              head_node_id=head_node_id,
              cluster_node_info_cache=cluster_node_info_cache,
              logging_config=LoggingConfig(),
              actor_proxy_wrapper_class=actor_proxy_wrapper_class,
              timer=timer,
          ),
          cluster_node_info_cache,
      )
  
imports: import json
  import time
  from typing import List, Tuple
  from unittest.mock import patch
  import pytest
  from ray._private.test_utils import wait_for_condition
  from ray.serve._private.cluster_node_info_cache import ClusterNodeInfoCache
  from ray.serve._private.common import ProxyStatus
  from ray.serve._private.constants import PROXY_HEALTH_CHECK_UNHEALTHY_THRESHOLD
  from ray.serve._private.proxy_state import ProxyState, ProxyStateManager, ProxyWrapper, ProxyWrapperCallStatus
  from ray.serve._private.test_utils import MockTimer
  from ray.serve._private.utils import Timer
  from ray.serve.config import DeploymentMode, HTTPOptions
  from ray.serve.schema import LoggingConfig
label_desc: Use image node_id 1 for calling a global function with example usage: _create_proxy_state_manager(http_options, head_node_id, cluster_node_info_cache, actor_proxy_wrapper_class, timer) and returns: ProxyStateManager,  cluster_node_info_cache