using RobotNet10.CustomConfiguration.Events;
using RobotNet10.CustomConfiguration.Models;
namespace RobotNet10.CustomConfiguration.Services;
///
/// Service interface cho quản lý và truy vấn configuration variables
///
public interface IConfigManager
{
// ==========================================
// EVENTS
// ==========================================
///
/// Event được trigger khi có thay đổi trong config (tạo mới, cập nhật, xóa, hoặc thay đổi variables)
///
event EventHandler? ConfigChanged;
// ==========================================
// CONFIG TYPE OPERATIONS
// ==========================================
///
/// Lấy config theo ConfigType (đầy đủ thông tin bao gồm variables)
///
Task GetConfigByTypeAsync(string configType);
///
/// Kiểm tra ConfigType có tồn tại không
///
Task ConfigTypeExistsAsync(string configType);
// ==========================================
// VARIABLE EXISTENCE CHECK
// ==========================================
///
/// Kiểm tra variable có tồn tại không (theo ConfigType)
///
Task VariableExistsAsync(string configType, string variableName);
///
/// Kiểm tra variable có tồn tại không (theo ConfigId)
///
Task VariableExistsAsync(Guid configId, string variableName);
// ==========================================
// GET VARIABLE VALUE
// ==========================================
///
/// Lấy giá trị (Value) của variable (theo ConfigType)
///
Task