src/State/StateInterface.php
<?php
namespace Workflux\State;
use Workflux\Param\InputInterface;
use Workflux\Param\OutputInterface;
use Workflux\Param\ParamHolderInterface;
use Workflux\State\ValidatorInterface;
interface StateInterface
{
/**
* @param InputInterface $input
*
* @return OutputInterface
*/
public function execute(InputInterface $input): OutputInterface;
/**
* @return string
*/
public function getName(): string;
/**
* @return bool
*/
public function isInitial(): bool;
/**
* @return bool
*/
public function isFinal(): bool;
/**
* @return bool
*/
public function isInteractive(): bool;
/**
* @return ValidatorInterface
*/
public function getValidator(): ValidatorInterface;
/**
* @param string $name
* @param mixed $default
*
* @return mixed
*/
public function getSetting(string $name, $default = null);
/**
* @return ParamHolderInterface
*/
public function getSettings(): ParamHolderInterface;
}