using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

using AIRuntime.Runtime.Models;
using AIRuntime.Runtime.Providers.Models;


namespace AIRuntime.Runtime.Providers
{
    public interface IProvider
    {
        string Name { get; }


        Task<ChatCompletion> ChatAsync(
            IReadOnlyList<ConversationMessage> messages,
            IReadOnlyList<ProviderTool> tools,
            CancellationToken cancellationToken = default);
    }
}