The objects. * @phpstan-return T[] */ public function findAll(): array; /** * Finds objects by a set of criteria. * * Optionally sorting and limiting details can be passed. An implementation may throw * an UnexpectedValueException if certain values of the sorting or limiting details are * not supported. * * @param array $criteria * @param array|null $orderBy * @phpstan-param array|null $orderBy * * @return array The objects. * @phpstan-return T[] * * @throws UnexpectedValueException */ public function findBy( array $criteria, array|null $orderBy = null, int|null $limit = null, int|null $offset = null, ): array; /** * Finds a single object by a set of criteria. * * @param array $criteria The criteria. * * @return object|null The object. * @phpstan-return T|null */ public function findOneBy(array $criteria): object|null; /** * Returns the class name of the object managed by the repository. * * @phpstan-return class-string */ public function getClassName(): string; }