<?php

declare(strict_types=1);

namespace PhpWA\Storage;

interface AccountStoreInterface
{
    /**
     * Runs the callback in one durable account transaction. Normal return
     * commits; any Throwable rolls back every state/outbox/dedupe mutation.
     *
     * @return mixed callback result
     */
    public function transaction(string $accountId, callable $callback);
}
