using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using GB5Shared.DTO.Framework.Login;
using GB5Shared.GEF;
namespace GB5Shared.SIP;
///
/// Thin, directly-referenceable contract for SIP (Signal & Insight Processor) — any module
/// emits a signal here without a hard reference to the SIP implementation
/// (FrameworkBLL.SIP.SIPSignalService), same reasoning as
/// GB5Shared.GEF.IGEFEngine. Reuses from GB5Shared.GEF
/// rather than a duplicate — it is the same signal shape GEF consumes as
/// SituationDTO.SupportingSignals input.
///
/// One-way dependency: GEF may read SIP's output; SIP never calls GEF (canvas §8.2).
///
///
public interface ISIPSignalService
{
/// Appends one immutable signal to the Interaction Pattern Ledger.
Task EmitSignalAsync(
SignalDTO signal,
string domain,
string entityCode,
int entityId,
LoginDTO login,
CancellationToken ct);
/// Returns per-SignalType occurrence summaries for the given entity.
Task> GetPatternSummaryAsync(
string domain,
string entityCode,
int entityId,
LoginDTO login,
CancellationToken ct);
}