<?php
# Eleanor CMS © 2025 --> https://eleanor-cms.com
namespace CMS\Interfaces;

/** Фоновая задача, запускаемая в системе через сервис cron.php */
interface Cron
{
	/** Запуск задачи. Если задача настолько тяжёлая, что не может быть выполнена до конца за один запуск, она должна быть
	 * разбита на "этапы". При запуске каждого следующего этапа, в метод передаётся результат в виде массива из предыдущего.
	 * Хранение данных между запусками до конца выполненных задачи не предусмотрено.
	 * @param ?array $remnant Возвращенные в прошлый раз данные для продолжения выполнения не выполненной до конца задачи.
	 * @return array|int При возврате array задача считается не выполненной до конца и будет выполнена повторно в
	 * ближайшее время, возврат целого числа определяет количество секунд до следующего запуска. */
	function Cron(?array$remnant):array|int;
}

#Not necessary here, since interface name equals filename
return Cron::class;