namespace ControlCenter.Hubs;
///
/// Strongly-typed client interface for the AgentStatus SignalR hub.
/// Defines the methods the server can invoke on connected clients
/// to push real-time agent status and task progress updates.
///
/// All server-to-client calls go through this interface for
/// compile-time safety — matching the pattern used by the
/// Extrudex PrinterHub.
///
public interface IAgentStatusClient
{
///
/// Pushes an agent status change to all subscribed clients.
/// Fired whenever an agent's operational status changes
/// (e.g., idle → active, active → thinking, active → error).
///
/// The full status update payload.
/// A Task that completes when the client has processed the update.
Task AgentStatusChanged(AgentStatusUpdate update);
///
/// Pushes a task progress update to all subscribed clients.
/// Fired when an agent reports progress on its current task.
///
/// The task progress update payload.
/// A Task that completes when the client has processed the update.
Task AgentTaskProgress(TaskProgressUpdate progress);
}