using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace Tr.Sdk
{
    public partial interface ITrClient
    {
        /// <summary>
        /// 执行操作呼叫中心请求
        /// </summary>
        /// <typeparam name="TRequest"></typeparam>
        /// <typeparam name="TResponse"></typeparam>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task<TResponse> ExecuteAsync<TRequest, TResponse>(TRequest request, CancellationToken cancellationToken)
            where TRequest : TrRequest;

        Task ExecuteAsync<TRequest>(TRequest request, CancellationToken cancellationToken)
            where TRequest : TrRequest;
    }
}
