namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;
///
/// Optional control-plane capability — drivers whose backend exposes a way to refresh
/// the symbol table on-demand (without tearing the driver down) implement this so the
/// Admin UI / CLI can trigger a re-walk in response to an operator action.
///
///
/// Distinct from : that interface is the driver telling Core
/// a refresh is needed; this one is Core asking the driver to refresh now. For drivers that
/// implement both, the typical wiring is "operator clicks Rebrowse → Core calls
/// → driver re-walks → driver fires
/// OnRediscoveryNeeded so the address space is rebuilt".
///
/// For AB CIP this is the "force re-walk of @tags" hook — useful after a controller
/// program download added new tags but the static config still drives the address space.
///
public interface IDriverControl
{
///
/// Re-run the driver's discovery pass against live backend state and stream the
/// resulting nodes through the supplied builder. Implementations must be safe to call
/// concurrently with reads / writes; they typically serialize internally so a second
/// concurrent rebrowse waits for the first to complete rather than racing it.
///
Task RebrowseAsync(IAddressSpaceBuilder builder, CancellationToken cancellationToken);
}