using AIStudio.Settings;
using Microsoft.JSInterop;
namespace AIStudio.Provider;
///
/// A common interface for all providers.
///
public interface IProvider
{
///
/// The provider's ID.
///
public string Id { get; }
///
/// The provider's instance name. Useful for multiple instances of the same provider,
/// e.g., to distinguish between different OpenAI API keys.
///
public string InstanceName { get; set; }
public IAsyncEnumerable GetChatCompletion(IJSRuntime jsRuntime, SettingsManager settings, Model chatModel, Thread chatThread);
public Task> GetModels(IJSRuntime jsRuntime, SettingsManager settings);
}