namespace ZymonicServices; public interface IZymonicGatewayQueueStore { void InitialiseDatabase(); Task RequeueInProgressRequestsAsync(CancellationToken ct = default); Task QueueRequestAsync(ZymonicGatewayQueuedRequest request, CancellationToken ct = default); Task QueueFailedRequestAsync(ZymonicGatewayQueuedRequest request, string error, CancellationToken ct = default); Task GetQueuedRequestAsync(Guid requestId, CancellationToken ct = default); Task> GetQueuedRequestsAsync(string? status = null, int limit = 100, CancellationToken ct = default); Task ClaimNextQueuedRequestAsync(int maxAttempts, TimeSpan retryDelay, CancellationToken ct = default); Task UpdateQueuedRequestAsync(Guid requestId, ZymonicGatewayQueuedRequest update, CancellationToken ct = default); Task RetryRequestAsync(Guid requestId, int maxAttempts, bool debugMode, CancellationToken ct = default); Task CompleteRequestAsync(Guid requestId, CancellationToken ct = default); Task FailRequestAsync(Guid requestId, string error, int maxAttempts, CancellationToken ct = default); Task GetStatusSnapshotAsync(CancellationToken ct = default); }