package sample

// Alarm allows clients to manipulate an alarm and query its status.
type Alarm interface {
 // Status returns the current status of the Alarm (i.e., armed, unarmed, panicking).
 Status() (string | error)
 // Arm sets the Alarm to the armed state.
 Arm() error
 // DelayArm sets the Alarm to the armed state after the given delay in seconds.
 DelayArm(seconds float32) error
 // Unarm sets the Alarm to the unarmed state.
 Unarm() error
 // Panic sets the Alarm to the panicking state.
 Panic() error
}
