<?php

namespace AuthStack\OAuth2\Model\Protocol\Grant;

class GrantFactory
{
    /**
     * @return AuthorizationCode
     */
    public function authorizationCode(): AuthorizationCode
    {
        return new AuthorizationCode();
    }

    /**
     * @return Implicit
     */
    public function implicit(): Implicit
    {
        return new Implicit();
    }

    /**
     * @return PasswordCredentials
     */
    public function passwordCredentials(): PasswordCredentials
    {
        return new PasswordCredentials();
    }

    /**
     * @return ClientCredentials
     */
    public function clientCredentials(): ClientCredentials
    {
        return new ClientCredentials();
    }
}