* @param $taskName A task name to register the task on
* @param $taskInstance The instance we should register as a task
* @return void
+ * @throws TaskAlreadyRegisteredException If the given task is already registered
*/
function registerTask ($taskName, Visitable $taskInstance);
}