+ function enqueueRawDataFromTemplate (Helper $helperInstance, $protocol);
+
+ /**
+ * Checks whether a package has been enqueued for delivery.
+ *
+ * @return $isEnqueued Whether a package is enqueued
+ */
+ function isPackageEnqueued ();
+
+ /**
+ * Checks whether a package has been declared
+ *
+ * @return $isDeclared Whether a package is declared
+ */
+ function isPackageDeclared ();
+
+ /**
+ * Checks whether a package should be sent out
+ *
+ * @return $isWaitingDelivery Whether a package is waiting for delivery
+ */
+ function isPackageWaitingForDelivery ();
+
+ /**
+ * Checks whether encoded (raw) data is pending
+ *
+ * @return $isPending Whether encoded data is pending
+ */
+ function isEncodedDataPending ();
+
+ /**
+ * Delivers an enqueued package to the stated destination. If a non-session
+ * id is provided, recipient resolver is being asked (and instanced once).
+ * This allows that a single package is being delivered to multiple targets
+ * without enqueueing it for every target. If no target is provided or it
+ * can't be determined a NoTargetException is being thrown.
+ *
+ * @return void
+ * @throws NoTargetException If no target can't be determined
+ */
+ function declareEnqueuedPackage ();
+
+ /**
+ * Processes the next declared package. Only one package per time will be
+ * processed because this may take time and slows down the whole delivery
+ * infrastructure.
+ *
+ * @return void
+ */
+ function processDeclaredPackage ();
+
+ /**
+ * Sends waiting packages out for delivery
+ *
+ * @return void
+ */
+ function sendWaitingPackage ();
+
+ /**
+ * Sends pending encoded (raw) data
+ *
+ * @return void
+ */
+ function sendEncodedData ();
+
+ /**
+ * Clears all stacks
+ *
+ * @return void
+ */
+ function clearAllStacks ();