<?php declare(strict_types=1);

namespace Newland\Toubiz\Sync\Neos\Command\Task;

use Newland\Toubiz\Sync\Neos\Command\Helper\ConfigurationHelper;

interface SynchronizationTask
{

    public function name(): string;

    public function configurations(ConfigurationHelper $configurationHelper): \Generator;

    public function synchronize(
        array $configuration,
        \Closure $errorHandlerWrapper,
        \Closure $onProgress
    ): SynchronizationResult;
}
