using ClaudeDo.Data.Models;

namespace ClaudeDo.Worker.Queue;

/// <summary>
/// Atomic queue claim. Returns the claimed task (already flipped to Running with
/// StartedAt set) or null if no eligible task is available.
/// </summary>
public interface IQueuePicker
{
    Task<TaskEntity?> ClaimNextAsync(DateTime now, CancellationToken ct);
}
