// // Copyright (c) StellaOps. Licensed under AGPL-3.0-or-later. // // Sprint: SPRINT_20260105_002_004_TEST_policy_explainability // Task: PEXP-003 namespace StellaOps.Testing.Explainability; /// /// Interface for services that produce explainable decisions. /// /// Type of input to the decision. /// Type of output from the decision. public interface IExplainableDecision { /// /// Evaluate input and produce output with explanation. /// /// The input to evaluate. /// Cancellation token. /// Result with explanation. Task> EvaluateWithExplanationAsync( TInput input, CancellationToken ct = default); } /// /// Marker interface for decisions that support explanation. /// public interface IExplainable { /// /// Gets whether explanations are enabled. /// bool ExplanationsEnabled { get; } /// /// Enable or disable explanations. /// /// Whether to enable explanations. void SetExplanationsEnabled(bool enabled); }