using Elsa.Expressions.Models; using JetBrains.Annotations; using Microsoft.CodeAnalysis.Scripting; namespace Elsa.CSharp.Contracts; /// /// Evaluates C# expressions. /// [PublicAPI] public interface ICSharpEvaluator { /// /// Evaluates a C# expression. /// /// The expression to evaluate. /// The type of the return value. /// The context in which the expression is evaluated. /// A set of options. /// An optional callback to configure the script options. /// An optional callback to configure the script. /// An optional cancellation token. /// The result of the evaluation. Task EvaluateAsync( string expression, Type returnType, ExpressionExecutionContext context, ExpressionEvaluatorOptions options, Func? configureScriptOptions = default, Func, Script>? configureScript = default, CancellationToken cancellationToken = default); }