HumanoidMocap/Core/Motion/IBodyCapture.cs
#nullable enable annotations

namespace HumanoidMocapX.Core.Motion;

/// <summary>Reconstructs a video range into a validated, metre-based motion document.</summary>
public interface IBodyCapture
{
    /// <summary>Reason capture cannot start, or null when the backend is ready.</summary>
    string? UnavailableReason { get; }

    /// <summary>Returns the saved motion path. Range times are source-video seconds;
    /// a null end means the remaining video. Failures and cancellation propagate.</summary>
    Task<string> CaptureAsync(string video, double start, double? end,
        Action<string> progress, CancellationToken cancellationToken);
}