<?php
declare(strict_types=1);
namespace App\Reference\Contracts;
interface ReferenceRepositoryInterface
{
    public function types(bool $includeArchived = false): array;
    public function typeByCode(string $code): ?array;
    public function values(int $typeId, bool $includeArchived = false): array;
    public function value(int $id): ?array;
    public function createType(array $data): int;
    public function updateType(int $id, array $data): void;
    public function archiveType(int $id): void;
    public function createValue(int $typeId, array $data): int;
    public function updateValue(int $id, array $data): void;
    public function archiveValue(int $id): void;
    public function restoreValue(int $id): void;
    public function history(int $limit = 50): array;
    public function stats(): array;
}
