using EbbesMemeClipboard.Models; namespace EbbesMemeClipboard.Services; public interface IGifProvider { MemeSource Source { get; } /// False when the provider isn't usable yet (e.g. no API key configured). bool IsConfigured { get; } /// Shown in the UI when IsConfigured is false, explaining how to fix it. string NotConfiguredMessage { get; } /// An empty query returns whatever the provider considers trending. Task> SearchAsync(string query, int limit, CancellationToken ct); }