using System.Collections.Generic;
namespace Renci.SshNet
{
    /// 
    /// Base interface for authentication of a session using a given method.
    /// 
    internal interface IAuthenticationMethod
    {
        /// 
        /// Authenticates the specified session.
        /// 
        /// The session to authenticate.
        /// 
        /// The result of the authentication process.
        /// 
        AuthenticationResult Authenticate(ISession session);
        /// 
        /// Gets the list of allowed authentications.
        /// 
        /// 
        /// The list of allowed authentications.
        /// 
        IEnumerable AllowedAuthentications { get; }
        /// 
        /// Gets the name of the authentication method.
        /// 
        /// 
        /// The name of the authentication method.
        /// 
        string Name { get; }
    }
}