<?php
declare(strict_types=1);

namespace ROITheme\Public\LazyCSSLoader\Infrastructure\Contracts;

/**
 * Interface para registrar CSS lazy (TIPO 5)
 *
 * Cumple DIP: permite inyeccion de dependencias y testing
 *
 * @package ROITheme\Public\LazyCSSLoader\Infrastructure\Contracts
 */
interface LazyCSSRegistrarInterface
{
    /**
     * Registra hooks de WordPress para lazy loading
     */
    public function register(): void;

    /**
     * Remueve CSS que ahora es TIPO 5 del enqueue normal
     */
    public function dequeueType5CSS(): void;

    /**
     * Encola el loader JavaScript con configuracion
     */
    public function enqueueLoader(): void;

    /**
     * Agrega fallback noscript para accesibilidad
     */
    public function addNoscriptFallback(): void;
}
