<?php

declare(strict_types=1);

namespace ApiModel\Domain\Repository;

interface EmployeeRepositoryInterface
{
    public function findById(string $id): ?array;

    /** @return list<array<string, mixed>> */
    public function listByCompany(string $companyId): array;

    public function insert(array $employee): void;

    public function update(string $id, array $employee): void;

    public function delete(string $id): void;

    public function findContractByEmployeeId(string $employeeId): ?array;

    public function saveContract(array $contract): void;

    public function deleteContract(string $employeeId): void;

    /** @return list<array<string, mixed>> */
    public function listActiveByCompany(string $companyId): array;
}
