use zbus::proxy;
use crate::{TimerCalendar, TimerMonotonic};
#[proxy(
interface = "org.freedesktop.systemd1.Timer",
default_service = "org.freedesktop.systemd1"
)]
pub trait Timer {
#[zbus(property, name = "AccuracyUSec")]
fn accuracy_usec(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn fixed_random_delay(&self) -> zbus::Result<bool>;
#[zbus(property, name = "LastTriggerUSec")]
fn last_trigger_usec(&self) -> zbus::Result<u64>;
#[zbus(property, name = "LastTriggerUSecMonotonic")]
fn last_trigger_usec_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property, name = "NextElapseUSecMonotonic")]
fn next_elapse_usec_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property, name = "NextElapseUSecRealtime")]
fn next_elapse_usec_realtime(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn on_clock_change(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn on_timezone_change(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn persistent(&self) -> zbus::Result<bool>;
#[zbus(property, name = "RandomizedDelayUSec")]
fn randomized_delay_usec(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn remain_after_elapse(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn result(&self) -> zbus::Result<String>;
#[zbus(property)]
fn timers_calendar(&self) -> zbus::Result<Vec<TimerCalendar>>;
#[zbus(property)]
fn timers_monotonic(&self) -> zbus::Result<Vec<TimerMonotonic>>;
#[zbus(property)]
fn unit(&self) -> zbus::Result<String>;
#[zbus(property)]
fn wake_system(&self) -> zbus::Result<bool>;
}