using Journal.Core.Dtos;

namespace Journal.Core.Services.Ai;

public interface IAiService
{
    Task<AiHealthDto> HealthAsync(CancellationToken cancellationToken = default);
    Task<string> SummarizeEntryAsync(string content, string? fileStem = null, CancellationToken cancellationToken = default);
    Task<string> SummarizeAllAsync(IReadOnlyList<string> entries, CancellationToken cancellationToken = default);
    Task<string> ChatAsync(string prompt, CancellationToken cancellationToken = default);
    Task<string> ChatWithHistoryAsync(IReadOnlyList<(string Role, string Text)> history, string prompt, CancellationToken cancellationToken = default);
    Task<IReadOnlyList<double>> EmbedAsync(string content, CancellationToken cancellationToken = default);
}
