<?php

namespace Licenzo\Services\Media;

// Prevent direct access
if (!defined('ABSPATH')) {
    exit;
}

interface ReleaseMediaAdapterInterface
{
    /**
     * Provider identifier stored in release metadata.
     */
    public function provider(): string;

    /**
     * Normalize and validate a media reference payload.
     *
     * @param array<string,mixed> $reference
     * @return array<string,mixed>
     */
    public function normalizeReference(array $reference): array;

    /**
     * Resolve a public URL for an already-normalized media payload.
     *
     * @param array<string,mixed> $media
     */
    public function resolvePublicUrl(array $media): string;
}
