docs: def _publisher_confirmation_future(self, name, exchange, routing_key,
                                         properties):
          """Return a future a publisher confirmation result that enables
          consumers to block on the confirmation of a published message.
  
          Two internal dicts are used for keeping track of state.
          Consumer._delivery_tags is a dict of connection names that keeps
          the last delivery tag expectation and is used to correlate the future
          with the delivery tag that is expected to be confirmed from RabbitMQ.
  
          This for internal use and should not be extended or used directly.
  
          :param str name: The connection name for the future
          :param str exchange: The exchange the message was published to
          :param str routing_key: The routing key that was used
          :param properties: The AMQP message properties for the delivery
          :type properties: pika.spec.Basic.Properties
          :rtype: concurrent.Future.
  
          """
          if self._connections[name].publisher_confirmations:
              future = concurrent.Future()
              self._connections[name].add_confirmation_future(
                  exchange, routing_key, properties, future)
              return future