<?php declare( strict_types=1 ); namespace Automattic\WooCommerce\GoogleListingsAndAds\Assets; use Automattic\WooCommerce\GoogleListingsAndAds\Exception\InvalidAsset; /** * Interface AssetsHandlerInterface * * @package Automattic\WooCommerce\GoogleListingsAndAds\Assets */ interface AssetsHandlerInterface { /** * Add a single asset to the asset handler. * * @param Asset $asset Asset to add. */ public function add( Asset $asset ): void; /** * Add multiple assets to the asset handler. * * @param Asset[] $assets Array of assets to add. */ public function add_many( array $assets ): void; /** * Enqueue a single asset. * * @param Asset $asset Asset to enqueue. * * @throws InvalidAsset If the passed-in asset is not valid. * * @see AssetsHandlerInterface::add To add assets. * @see AssetsHandlerInterface::add_many To add multiple assets. */ public function enqueue( Asset $asset ): void; /** * Enqueue multiple assets. * * @param Asset[] $assets Array of assets to enqueue. * * @throws InvalidAsset If any of the passed-in assets are not valid. * * @see AssetsHandlerInterface::add To add assets. * @see AssetsHandlerInterface::add_many To add multiple assets. */ public function enqueue_many( array $assets ): void; /** * Enqueue a single asset based on its handle. * * @param string $handle Handle of the asset to enqueue. * * @throws InvalidAsset If the passed-in asset handle is not valid. */ public function enqueue_handle( string $handle ): void; /** * Enqueue multiple assets based on their handles. * * @param string[] $handles Array of asset handles to enqueue. * * @throws InvalidAsset If any of the passed-in asset handles are not valid. */ public function enqueue_many_handles( array $handles ): void; /** * Dequeue a single asset based on its handle. * * @param string $handle Handle of the asset to enqueue. * * @throws InvalidAsset If the passed-in asset handle is not valid. */ public function dequeue_handle( string $handle ): void; /** * Enqueue all assets known to this asset handler. */ public function enqueue_all(): void; }