namespace Extrudex.API.Hubs; /// /// Strongly-typed client interface for the SignalR PrinterHub. /// Defines the methods that the server can invoke on connected clients /// to push real-time printer status updates. /// public interface IPrinterClient { /// /// Pushes a full printer status update to all clients subscribed /// to a specific printer's group. Fired whenever a printer's /// operational status changes (e.g., Idle → Printing, Offline → Idle). /// /// The unique identifier of the printer that changed. /// The new status value (e.g., "Idle", "Printing", "Offline", "Error", "Paused"). /// Timestamp (UTC) of when this status was last observed. /// A Task that completes when the client has processed the update. Task PrinterStatusChanged(Guid printerId, string status, DateTime? lastSeenAt); /// /// Pushes a lightweight heartbeat to confirm that a printer is still /// reachable and its connection is alive. Useful for dashboards that /// display online/offline indicators without requiring a full status payload. /// /// The unique identifier of the printer. /// Whether the printer is currently active and available for jobs. /// Timestamp (UTC) of the last telemetry received from the printer. /// A Task that completes when the client has processed the heartbeat. Task PrinterHeartbeat(Guid printerId, bool isActive, DateTime? lastSeenAt); }