<?php
namespace QuantumCache\Store;
\defined( 'ABSPATH' ) || exit;

interface StoreInterface {

	public function get( string $key ): ?string;

	public function set( string $key, string $val, int $ttl, ?int $stale_ttl = null ): void;

	public function addTags( string $key, array $tags ): void;

	public function purgeTags( array $tags ): int;

	public function delete( string $key ): void;

	public function acquireLock( string $key, int $ms_ttl ): bool;

	public function releaseLock( string $key ): void;
}
