// SPDX-License-Identifier: BUSL-1.1
// Copyright (c) 2026 StellaOps
// Sprint: SPRINT_20260118_030_LIB_verdict_rekor_gate_api
// Task: TASK-030-005 - Gate Decision Logic (interface for TASK-030-002)
using StellaOps.Signals.EvidenceWeightedScore;
namespace StellaOps.DeltaVerdict.Bundles;
///
/// Evaluates gate decisions based on scoring results and configuration.
///
public interface IGateEvaluator
{
///
/// Evaluates gate decision for a single finding.
///
/// Final score [0, 1].
/// Original EWS input for context.
/// Gate configuration with thresholds.
/// Evaluation timestamp.
/// Gate decision with action, reason, and suggestions.
GateDecision Evaluate(
double finalScore,
EvidenceWeightedScoreInput input,
GateConfiguration config,
DateTimeOffset evaluatedAt);
///
/// Evaluates gate decisions for multiple findings in batch.
///
/// Collection of score/input pairs.
/// Gate configuration with thresholds.
/// Evaluation timestamp.
/// Gate decisions for each finding.
IReadOnlyList EvaluateBatch(
IReadOnlyList<(double FinalScore, EvidenceWeightedScoreInput Input)> findings,
GateConfiguration config,
DateTimeOffset evaluatedAt);
}