<?php
namespace FlysystemOffload\Filesystem;

use League\Flysystem\FilesystemAdapter;
use WP_Error;

interface AdapterInterface
{
    /**
     * @param array $settings Configuración específica del adaptador.
     * @return FilesystemAdapter|WP_Error
     */
    public function create(array $settings);

    /**
     * Devuelve la URL base pública para el adaptador.
     */
    public function publicBaseUrl(array $settings): string;

    /**
     * Validación previa de opciones. Debe devolver true en caso de éxito.
     *
     * @return true|WP_Error
     */
    public function validate(array $settings);
}
