$filters * @return Collection */ public function getAll(array $filters = []): Collection; /** * Find an employee by ID. * * @param int $id * @return Employee|null */ public function findById(int $id): ?Employee; /** * Find an employee by email. * * @param string $email * @return Employee|null */ public function findByEmail(string $email): ?Employee; /** * Get active employees only. * * @return Collection */ public function getActive(): Collection; /** * Get inactive employees only. * * @return Collection */ public function getInactive(): Collection; /** * Search employees by term. * * @param string $term * @return Collection */ public function search(string $term): Collection; /** * Get employees with pagination. * * @param int $perPage * @return array{employees: Collection, pagination: array} */ public function getPaginated(int $perPage = 10): array; /** * Get employees with their thanatopractitioner data. * * @return Collection */ public function getWithThanatopractitioner(): Collection; /** * Get employee statistics. * * @return array */ public function getStatistics(): array; }