using Opc.Ua;

namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters;

/// <summary>
///     Abstracts OPC UA endpoint discovery for testability.
/// </summary>
internal interface IEndpointDiscovery
{
    /// <summary>
    ///     Discovers endpoints at the given URL and returns the best match for the requested security mode.
    ///     Also rewrites the endpoint URL hostname to match the requested URL when they differ.
    /// </summary>
    EndpointDescription SelectEndpoint(ApplicationConfiguration config, string endpointUrl,
        MessageSecurityMode requestedMode);
}