* @phpstan-extends \Iterator */ interface DirectoryInterface extends \ArrayAccess, \Iterator, ContainerInterface { /** * Get node by name. * * @param string $name File/direcotry name * * @return null|ContainerInterface * * @since 1.0.0 */ public function getNode(string $name) : ?ContainerInterface; /** * Add file or directory. * * @param ContainerInterface $file File to add * * @return self * * @since 1.0.0 */ public function addNode(ContainerInterface $file) : self; /** * Get files in directory. * * @return array * * @since 1.0.0 */ public function getList() : array; }