namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;

/// <summary>
///     Driver capability for discovering tags and hierarchy from the backend.
///     Streams discovered nodes into <see cref="IAddressSpaceBuilder"/> rather than
///     buffering the entire tree (decision #52 — supports incremental / large address spaces).
/// </summary>
public interface ITagDiscovery
{
    /// <summary>
    ///     Discover the driver's tag set and stream nodes to the builder.
    ///     The driver decides ordering (root → leaf typically) and may yield as many calls as needed.
    /// </summary>
    Task DiscoverAsync(IAddressSpaceBuilder builder, CancellationToken cancellationToken);
}
