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