using AIStudio.Settings;
using AIStudio.Tools.ERIClient.DataModel;
namespace AIStudio.Tools.ERIClient;
public interface IERIClient : IDisposable
{
///
/// Retrieves the available authentication methods from the ERI server.
///
///
/// No authentication is required to retrieve the available authentication methods.
///
/// The cancellation token.
/// The available authentication methods.
public Task>> GetAuthMethodsAsync(CancellationToken cancellationToken = default);
///
/// Authenticate the user to the ERI server.
///
/// The data source to use.
/// The Rust service.
/// The cancellation token.
/// The authentication response.
public Task> AuthenticateAsync(IERIDataSource dataSource, RustService rustService, CancellationToken cancellationToken = default);
///
/// Retrieves the data source information from the ERI server.
///
/// The cancellation token.
/// The data source information.
public Task> GetDataSourceInfoAsync(CancellationToken cancellationToken = default);
///
/// Retrieves the embedding information from the ERI server.
///
/// The cancellation token.
/// A list of embedding information.
public Task>> GetEmbeddingInfoAsync(CancellationToken cancellationToken = default);
///
/// Retrieves the retrieval information from the ERI server.
///
/// The cancellation token.
/// A list of retrieval information.
public Task>> GetRetrievalInfoAsync(CancellationToken cancellationToken = default);
///
/// Executes a retrieval request on the ERI server.
///
/// The retrieval request.
/// The cancellation token.
/// The retrieved contexts to use for augmentation and generation.
public Task>> ExecuteRetrievalAsync(RetrievalRequest request, CancellationToken cancellationToken = default);
///
/// Retrieves the security requirements from the ERI server.
///
/// The cancellation token.
/// The security requirements.
public Task> GetSecurityRequirementsAsync(CancellationToken cancellationToken = default);
}