using System;
using System.Text;
using Renci.SshNet.Common;
using Renci.SshNet.Sftp;
namespace Renci.SshNet
{
    /// 
    /// Factory for creating new services.
    /// 
    internal partial interface IServiceFactory
    {
        /// 
        /// Creates a new  with the specified .
        /// 
        /// The  to use for creating a new session.
        /// 
        /// An  for the specified .
        /// 
        ///  is null.
        ISession CreateSession(ConnectionInfo connectionInfo);
        /// 
        /// Creates a new  in a given  and with
        /// the specified operation timeout and encoding.
        /// 
        /// The  to create the  in.
        /// The operation timeout.
        /// The encoding.
        /// 
        /// An .
        /// 
        ISftpSession CreateSftpSession(ISession session, TimeSpan operationTimeout, Encoding encoding);
        /// 
        /// Create a new .
        /// 
        /// 
        /// A .
        /// 
        PipeStream CreatePipeStream();
    }
}