. */ namespace vierbergenlars\AuthserverExternalAccountBundle\ExternalAccount; use Symfony\Component\Security\Core\User\UserInterface; use vierbergenlars\AuthserverExternalAccountBundle\Entity\ExternalUser; use vierbergenlars\AuthserverExternalAccountBundle\ValueObject\Button; interface ExternalAccountProviderInterface { /** * * @return string */ public function getName(); /** * * @return string */ public function getServiceName(); /** * * @return string */ public function getIcon(); /** * * @return Button */ public function getLoginButton(); /** * * @return Button */ public function getConnectButton(); /** * * @return boolean */ public function hasConnect(); /** * * @return boolean */ public function hasDisconnect(); /** * * @param ExternalUser $externalUser */ public function disconnect(ExternalUser $externalUser); /** * * @param mixed $externalProviderData * @return boolean */ public function supports($externalProviderData); }