|string $name entry name or a class name * @param array $parameters Optional parameters to use to build the entry. Use this to force specific parameters to specific values. Parameters not defined in this array will be resolved using the container. * * @return ($name is class-string ? TClass : mixed) * * @throws ContainerExceptionInterface&Throwable the name parameter must be of type string * @throws NotFoundExceptionInterface&Throwable no entry found for the given name */ public function make(string $name, array $parameters = []); /** * Bind an arbitrary resolved entry to an identifier. * Useful for testing 'get'. * * @param mixed $entry */ public function set(string $name, $entry): void; /** * Unbind an arbitrary resolved entry. */ public function unbind(string $name): void; /** * Bind an arbitrary definition to an identifier. * Useful for testing 'make'. * * @param array|callable|string $definition */ public function define(string $name, $definition): void; }