// Copyright (c) Microsoft. All rights reserved. using System; using System.Threading; using System.Threading.Tasks; using Microsoft.Agents.AI.Workflows.Observability; namespace Microsoft.Agents.AI.Workflows.Execution; internal interface ISuperStepRunner { string RunId { get; } string StartExecutorId { get; } WorkflowTelemetryContext TelemetryContext { get; } bool HasUnservicedRequests { get; } bool HasUnprocessedMessages { get; } ValueTask EnqueueResponseAsync(ExternalResponse response, CancellationToken cancellationToken = default); ValueTask IsValidInputTypeAsync(CancellationToken cancellationToken = default); ValueTask EnqueueMessageAsync(T message, CancellationToken cancellationToken = default); ValueTask EnqueueMessageUntypedAsync(object message, Type declaredType, CancellationToken cancellationToken = default); ConcurrentEventSink OutgoingEvents { get; } ValueTask RunSuperStepAsync(CancellationToken cancellationToken); // This cannot be cancelled ValueTask RequestEndRunAsync(); }