<?php

namespace NoahVet\Reef\Business\Enumerator;

use NoahVet\Reef\Jane\Model\VeterinaryGroupUserResponse;

/**
 * @psalm-type VeterinaryGroupTeamMembersFilter = array{
 *     id?: string[],
 *     jobTitle?: string[],
 *     department?: string[],
 *     userId?: string[],
 *     veterinaryGroupId?: string[],
 *     veterinaryServiceOptionId?: string[],
 *     fromCreatedDate?: string[],
 *     fromUpdatedDate?: string[],
 *     fromEntryDate?: string[],
 *     fromExitDate?: string[],
 *     fromServiceSubscriptionStartDate?: string[],
 *     fromServiceSubscriptionEndDate?: string[],
 *     toCreatedDate?: string[],
 *     toUpdatedDate?: string[],
 *     toEntryDate?: string[],
 *     toExitDate?: string[],
 *     toServiceSubscriptionStartDate?: string[],
 *     toServiceSubscriptionEndDate?: string[],
 *     sortCreatedDate?: string,
 *     sortUpdatedDatesortCreatedDate?: string,
 *     sortEntryDatesortCreatedDate?: string,
 *     sortExitDatesortCreatedDate?: string,
 *     sortJobTitlesortCreatedDate?: string
 * }
 */
interface VeterinaryGroupTeamMembersEnumeratorInterface
{
    /**
     * @param VeterinaryGroupTeamMembersFilter $filters
     *
     * @return \Generator<VeterinaryGroupUserResponse>
     *
     * @see Client::getAllVeterinaryGroupUser
     */
    public function enumerateAll(
        array $filters = [],
        int $querySize = 50,
    ): \Generator;
}
