//
// Copyright (c) StellaOps. Licensed under the BUSL-1.1.
//
using StellaOps.AdvisoryAI.Attestation.Models;
namespace StellaOps.AdvisoryAI.Attestation;
///
/// Interface for prompt template registry.
/// Sprint: SPRINT_20260109_011_001 Task: AIAT-004
///
public interface IPromptTemplateRegistry
{
///
/// Registers a prompt template with version.
///
/// Template name.
/// Template version.
/// Template content.
void Register(string name, string version, string template);
///
/// Gets template info including hash.
///
/// Template name.
/// Template info or null if not found.
PromptTemplateInfo? GetTemplateInfo(string name);
///
/// Gets template info for a specific version.
///
/// Template name.
/// Template version.
/// Template info or null if not found.
PromptTemplateInfo? GetTemplateInfo(string name, string version);
///
/// Verifies a template hash matches registered version.
///
/// Template name.
/// Expected hash.
/// True if hash matches.
bool VerifyHash(string name, string expectedHash);
///
/// Gets all registered templates.
///
/// All template info records.
IReadOnlyList GetAllTemplates();
}