1: <?php declare(strict_types = 1);
2:
3: namespace ApiGen;
4:
5: use ApiGen\Task\Task;
6:
7:
8: /**
9: * @template TTask of Task
10: * @template TResult
11: */
12: interface Scheduler
13: {
14: /**
15: * @param TTask $task
16: */
17: public function schedule(Task $task): void;
18:
19:
20: /**
21: * @return iterable<TTask, TResult>
22: */
23: public function process(): iterable;
24: }
25: