using System.Globalization;

namespace NodePipeline.Abstractions.Interfaces;

/// <summary>
///     For implementation use <see cref="PipelineLocalizationProvider" />
/// </summary>
public interface IPipelineLocalizationProvider
{
    /// <summary>
    ///     Returns localized string by key and culture
    /// </summary>
    /// <param name="key">string key</param>
    /// <param name="culture"></param>
    /// <param name="args">formatted string arguments</param>
    /// <returns>
    ///     <c>Allows null</c>
    /// </returns>
    string GetLocalizedString(string key, CultureInfo culture, params object[] args);
}