using Managing.Domain.Synth.Models; namespace Managing.Application.Abstractions.Services; /// /// Interface for communicating with the Synth API /// public interface ISynthApiClient { /// /// Fetches the current leaderboard from Synth API /// /// Synth configuration containing API key and settings /// List of miners with their rankings and stats Task> GetLeaderboardAsync(SynthConfiguration config); /// /// Fetches historical leaderboard data from Synth API for a specific time range /// /// Start time for historical data (ISO 8601 format) /// End time for historical data (ISO 8601 format) /// Synth configuration containing API key and settings /// List of miners with their historical rankings and stats Task> GetHistoricalLeaderboardAsync(DateTime startTime, DateTime endTime, SynthConfiguration config); /// /// Fetches latest predictions from specified miners /// /// List of miner UIDs to get predictions from /// Asset symbol (e.g., "BTC", "ETH") /// Time interval in seconds between each prediction point /// Total prediction time length in seconds /// Synth configuration containing API key and settings /// List of predictions from the specified miners Task> GetMinerPredictionsAsync( List minerUids, string asset, int timeIncrement, int timeLength, SynthConfiguration config); /// /// Fetches historical predictions from specified miners for a specific time point /// /// List of miner UIDs to get predictions from /// Asset symbol (e.g., "BTC", "ETH") /// Start time for historical predictions (when the prediction was made) /// Time interval in seconds between each prediction point /// Total prediction time length in seconds /// Synth configuration containing API key and settings /// List of historical predictions from the specified miners Task> GetHistoricalMinerPredictionsAsync( List minerUids, string asset, DateTime startTime, int timeIncrement, int timeLength, SynthConfiguration config); }