using MarketAlly.AIPlugin;
using MarketAlly.AIPlugin.Conversation;
namespace MarketAlly.GitCommitEditor.Services;
///
/// Provides access to API keys for AI providers.
/// Implement this interface in platform-specific code (e.g., using SecureStorage in MAUI).
///
public interface IApiKeyProvider
{
///
/// Gets the API key for the specified provider, or null if not configured.
///
string? GetApiKey(AIProvider provider);
///
/// Checks if an API key is configured for the specified provider.
///
bool HasApiKey(AIProvider provider);
///
/// Sets the API key for the specified provider.
///
Task SetApiKeyAsync(AIProvider provider, string apiKey);
///
/// Removes the API key for the specified provider.
///
Task RemoveApiKeyAsync(AIProvider provider);
///
/// Gets all providers that have API keys configured.
///
IReadOnlyList GetConfiguredProviders();
}