<?php /** * League.Csv (https://csv.thephpleague.com) * * (c) Ignace Nyamagana Butera <nyamsprod@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ declare(strict_types=1); namespace League\Csv\Query; use Closure; /** * @phpstan-type Ordering Sort|Closure(mixed, mixed): int * @phpstan-type OrderingExtended Sort|Closure(mixed, mixed): int|callable(mixed, mixed): int */ interface SortCombinator extends Sort { /** * Return an instance with the specified sorting algorithm * added after the currently registered sorting algorithms. * * This method MUST retain the state of the current instance, * and return an instance that contains the specified changes. * * @param Ordering ...$sorts */ public function append(Sort|Closure ...$sorts): self; /** * Return an instance with the specified sorting algorithm * added before the currently registered sorting algorithms. * * This method MUST retain the state of the current instance, * and return an instance that contains the specified changes. * * @param Ordering ...$sorts */ public function prepend(Sort|Closure ...$sorts): self; }