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(); }