#ifndef PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_SCHEDULER_INTERFACE_H_
#define PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_SCHEDULER_INTERFACE_H_


#include "absl/functional/any_invocable.h"
#include "absl/status/status.h"
#include "absl/strings/string_view.h"
#include "absl/time/time.h"

namespace safepower_agent {

class SchedulerInterface {
 public:
  virtual ~SchedulerInterface() = default;

  // Schedule a task that will call a function every interval
  // returns an error if name is already in use
  virtual absl::Status PeriodicCall(absl::AnyInvocable<void()> fn,
                                    absl::Duration interval,
                                    absl::string_view name) = 0;

  // Schedule task that will call a function once after waitDuration
  // returns an error if name is already in use
  virtual absl::Status DelayCall(absl::AnyInvocable<void() &&> fn,
                                 absl::Duration wait_duration,
                                 absl::string_view name) = 0;

  // Cancel a Scheduled task permanently
  // returns an error if name is not in use
  virtual absl::Status CancelCall(absl::string_view name) = 0;

  // Cancel all Scheduled task permanently
  virtual absl::Status CancelAll() = 0;

  // Explicitly disables the Scheduler
  virtual absl::Status Shutdown() = 0;
};
}  // namespace safepower_agent
#endif  // PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_SCHEDULER_INTERFACE_H_
