using System;
using System.Collections;
using System.IO;
using XUnity.AutoTranslator.Plugin.Core.Configuration;
using XUnity.AutoTranslator.Plugin.Core.Extensions;
using XUnity.AutoTranslator.Plugin.Core.Web;
namespace XUnity.AutoTranslator.Plugin.Core.Endpoints
{
public interface ITranslateEndpoint
{
///
/// Gets the id of the IKnownEndpoint that is used as a configuration parameter.
///
string Id { get; }
///
/// Gets a friendly name that can be displayed to the user representing the plugin.
///
string FriendlyName { get; }
///
/// Gets the maximum concurrency for the endpoint. This specifies how many times "Translate"
/// can be called before it returns.
///
int MaxConcurrency { get; }
///
/// Called during initialization. Use this to initialize plugin or throw exception if impossible.
///
void Initialize( IInitializationContext context );
///
/// Attempt to translated the provided untranslated text. Will be used in a "coroutine", so it can be implemented
/// in an async fashion.
///
IEnumerator Translate( ITranslationContext context );
}
}