text: // Copyright (c) .NET Foundation. All rights reserved.
  // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  
  using System.Collections.Generic;
  using System.Reflection;
  using JetBrains.Annotations;
  using Microsoft.EntityFrameworkCore.Diagnostics;
  
  namespace Microsoft.EntityFrameworkCore.Cosmos.Query.Internal
  {
      /// <summary>
      ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
      ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
      ///     any release. You should only use it directly in your code with extreme caution and knowing that
      ///     doing so can result in application failures when updating to a new Entity Framework Core release.
      /// </summary>
      public interface IMethodCallTranslator
      {
          /// <summary>
          ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
          ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
          ///     any release. You should only use it directly in your code with extreme caution and knowing that
          ///     doing so can result in application failures when updating to a new Entity Framework Core release.
          /// </summary>
          SqlExpression Translate(
              [CanBeNull] SqlExpression instance,
              [NotNull] MethodInfo method,
              [NotNull] IReadOnlyList<SqlExpression> arguments,
              [NotNull] IDiagnosticsLogger<DbLoggerCategory.Query> logger);
      }
  }
  