using Yi.Framework.AiHub.Domain.Shared.Dtos;
using Yi.Framework.AiHub.Domain.Shared.Dtos.OpenAi.Images;
namespace Yi.Framework.AiHub.Domain.AiGateWay;
public interface IImageService
{
/// Creates an image given a prompt.
///
///
/// Propagates notification that operations should be canceled.
///
Task CreateImage(
ImageCreateRequest imageCreate,
AiModelDescribe? aiModelDescribe = null,
CancellationToken cancellationToken = default);
///
/// Creates an edited or extended image given an original image and a prompt.
///
///
///
/// Propagates notification that operations should be canceled.
///
Task CreateImageEdit(
ImageEditCreateRequest imageEditCreateRequest,
AiModelDescribe? aiModelDescribe = null,
CancellationToken cancellationToken = default);
/// Creates a variation of a given image.
///
///
/// Propagates notification that operations should be canceled.
///
Task CreateImageVariation(
ImageVariationCreateRequest imageEditCreateRequest,
AiModelDescribe? aiModelDescribe = null,
CancellationToken cancellationToken = default);
}