<?php

namespace Symfony\Contracts\Cache;

use Psr\Cache\CacheItemInterface;

interface CacheInterface
{
    /**
     * @template T
     *
     * @psalm-param (callable(CacheItemInterface, bool): T)|(callable(ItemInterface, bool): T)|CallbackInterface<T> $callback
     * @psalm-return T
     */
    public function get(string $key, callable $callback, float $beta = null, array &$metadata = null);
}
