<?php

namespace App\Services\Meet\Media;

interface MediaProviderInterface
{
    /**
     * @param  array<string, mixed>  $options
     */
    public function createRoom(string $roomName, array $options = []): void;

    public function deleteRoom(string $roomName): void;

    /**
     * @param  array<string, mixed>  $grants
     */
    public function generateToken(
        string $roomName,
        string $identity,
        string $displayName,
        array $grants = [],
    ): string;

    public function isConfigured(): bool;

    public function serverUrl(): string;
}
