using Managing.Common;
using Managing.Domain.Bots;
using Managing.Domain.Candles;
using Managing.Domain.Indicators;
namespace Managing.Application.Abstractions.Grains;
///
/// Orleans grain interface for scenario execution and signal generation.
/// This stateless grain handles candle management and signal generation for live trading.
///
public interface IScenarioRunnerGrain : IGrainWithGuidKey
{
///
/// Generates signals based on the current candles and scenario
///
/// The trading bot configuration
/// Previous signals to consider
/// Trading Exchange
/// The generated signal or null if no signal
Task GetSignals(TradingBotConfig config, Dictionary previousSignals,
Enums.TradingExchanges tradingExchange,
Candle lastCandle);
}