121 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php declare(strict_types=1);
 | 
						|
 | 
						|
namespace Automattic\WooCommerce\Vendor\League\Container\Definition;
 | 
						|
 | 
						|
use Automattic\WooCommerce\Vendor\League\Container\ContainerAwareInterface;
 | 
						|
 | 
						|
interface DefinitionInterface extends ContainerAwareInterface
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Add a tag to the definition.
 | 
						|
     *
 | 
						|
     * @param string $tag
 | 
						|
     *
 | 
						|
     * @return self
 | 
						|
     */
 | 
						|
    public function addTag(string $tag) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Does the definition have a tag?
 | 
						|
     *
 | 
						|
     * @param string $tag
 | 
						|
     *
 | 
						|
     * @return boolean
 | 
						|
     */
 | 
						|
    public function hasTag(string $tag) : bool;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Set the alias of the definition.
 | 
						|
     *
 | 
						|
     * @param string $id
 | 
						|
     *
 | 
						|
     * @return DefinitionInterface
 | 
						|
     */
 | 
						|
    public function setAlias(string $id) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get the alias of the definition.
 | 
						|
     *
 | 
						|
     * @return string
 | 
						|
     */
 | 
						|
    public function getAlias() : string;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Set whether this is a shared definition.
 | 
						|
     *
 | 
						|
     * @param boolean $shared
 | 
						|
     *
 | 
						|
     * @return self
 | 
						|
     */
 | 
						|
    public function setShared(bool $shared) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Is this a shared definition?
 | 
						|
     *
 | 
						|
     * @return boolean
 | 
						|
     */
 | 
						|
    public function isShared() : bool;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get the concrete of the definition.
 | 
						|
     *
 | 
						|
     * @return mixed
 | 
						|
     */
 | 
						|
    public function getConcrete();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Set the concrete of the definition.
 | 
						|
     *
 | 
						|
     * @param mixed $concrete
 | 
						|
     *
 | 
						|
     * @return DefinitionInterface
 | 
						|
     */
 | 
						|
    public function setConcrete($concrete) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Add an argument to be injected.
 | 
						|
     *
 | 
						|
     * @param mixed $arg
 | 
						|
     *
 | 
						|
     * @return self
 | 
						|
     */
 | 
						|
    public function addArgument($arg) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Add multiple arguments to be injected.
 | 
						|
     *
 | 
						|
     * @param array $args
 | 
						|
     *
 | 
						|
     * @return self
 | 
						|
     */
 | 
						|
    public function addArguments(array $args) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Add a method to be invoked
 | 
						|
     *
 | 
						|
     * @param string $method
 | 
						|
     * @param array  $args
 | 
						|
     *
 | 
						|
     * @return self
 | 
						|
     */
 | 
						|
    public function addMethodCall(string $method, array $args = []) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Add multiple methods to be invoked
 | 
						|
     *
 | 
						|
     * @param array $methods
 | 
						|
     *
 | 
						|
     * @return self
 | 
						|
     */
 | 
						|
    public function addMethodCalls(array $methods = []) : DefinitionInterface;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Handle instantiation and manipulation of value and return.
 | 
						|
     *
 | 
						|
     * @param boolean $new
 | 
						|
     *
 | 
						|
     * @return mixed
 | 
						|
     */
 | 
						|
    public function resolve(bool $new = false);
 | 
						|
}
 |