using Nexus.Api.Models;

namespace Nexus.Api.Services;

public interface IOpenClawWizardService
{
    Task<OpenClawWizardResultDto> StartAsync(
        StartOpenClawWizardRequest request,
        OpenClawInvocationContext invocation,
        CancellationToken cancellationToken = default);

    Task<OpenClawWizardResultDto> NextAsync(
        AdvanceOpenClawWizardRequest request,
        OpenClawInvocationContext invocation,
        CancellationToken cancellationToken = default);

    Task<OpenClawWizardResultDto> GetStatusAsync(
        string sessionId,
        CancellationToken cancellationToken = default);

    Task<OpenClawWizardResultDto> CancelAsync(
        string sessionId,
        OpenClawInvocationContext invocation,
        CancellationToken cancellationToken = default);
}
