sig
  type t = private OBus_peer.peer
  external of_peer : OBus_peer.peer -> t = "%identity"
  external to_peer : t -> OBus_peer.peer = "%identity"
  val daemon : unit -> t Lwt.t
  val busy : OBus_error.name
  val cancelled : OBus_error.name
  val failed : OBus_error.name
  val filesystem_driver_missing : OBus_error.name
  val filesystem_tools_missing : OBus_error.name
  val inhibited : OBus_error.name
  val invalid_option : OBus_error.name
  val not_found : OBus_error.name
  val not_supported : OBus_error.name
  val permission_denied : OBus_error.name
  type inhibit_cookie
  val inhibit : t -> UDisks.inhibit_cookie Lwt.t
  val uninhibit : t -> cookie:UDisks.inhibit_cookie -> unit Lwt.t
  val linux_md_create :
    t ->
    components:UDisks_device.t list ->
    level:string ->
    stripe_size:int64 ->
    name:string -> options:string list -> UDisks_device.t Lwt.t
  val linux_md_start :
    t ->
    components:UDisks_device.t list ->
    options:string list -> UDisks_device.t Lwt.t
  val linux_lvm2_lvcreate :
    t ->
    group_uuid:string ->
    name:string ->
    size:int64 ->
    num_stripes:int ->
    stripe_size:int64 ->
    num_mirrors:int ->
    options:string list ->
    fstype:string -> fsoptions:string list -> UDisks_device.t Lwt.t
  val linux_lvm2_lvremove :
    t ->
    group_uuid:string -> uuid:string -> options:string list -> unit Lwt.t
  val linux_lvm2_lvstart :
    t ->
    group_uuid:string -> uuid:string -> options:string list -> unit Lwt.t
  val linux_lvm2_lvset_name :
    t -> group_uuid:string -> uuid:string -> name:string -> unit Lwt.t
  val linux_lvm2_vgremove_pv :
    t ->
    vg_uuid:string -> pv_uuid:string -> options:string list -> unit Lwt.t
  val linux_lvm2_vgadd_pv :
    t ->
    uuid:string ->
    physical_volume:UDisks_device.t -> options:string list -> unit Lwt.t
  val linux_lvm2_vgset_name : t -> uuid:string -> name:string -> unit Lwt.t
  val linux_lvm2_vgstop :
    t -> uuid:string -> options:string list -> unit Lwt.t
  val linux_lvm2_vgstart :
    t -> uuid:string -> options:string list -> unit Lwt.t
  type all_spindown_timeouts_cookie
  val drive_set_all_spindown_timeouts :
    t ->
    timeout_seconds:int ->
    options:string list -> UDisks.all_spindown_timeouts_cookie Lwt.t
  val drive_unset_all_spindown_timeouts :
    t -> cookie:UDisks.all_spindown_timeouts_cookie -> unit Lwt.t
  type inhibit_all_polling_cookie
  val drive_inhibit_all_polling :
    t -> options:string list -> UDisks.inhibit_all_polling_cookie Lwt.t
  val drive_uninhibit_all_polling :
    t -> cookie:UDisks.inhibit_all_polling_cookie -> unit Lwt.t
  val find_device_by_major_minor :
    t -> device_major:int64 -> device_minor:int64 -> UDisks_device.t Lwt.t
  val find_device_by_device_file :
    t -> device_file:string -> UDisks_device.t Lwt.t
  val enumerate_device_files : t -> string list Lwt.t
  val enumerate_devices : t -> UDisks_device.t list Lwt.t
  val enumerate_ports : t -> UDisks_port.t list Lwt.t
  val enumerate_expanders : t -> UDisks_expander.t list Lwt.t
  val enumerate_adapters : t -> UDisks_adapter.t list Lwt.t
  val port_changed : t -> UDisks_port.t OBus_signal.t
  val port_removed : t -> UDisks_port.t OBus_signal.t
  val port_added : t -> UDisks_port.t OBus_signal.t
  val expander_changed : t -> UDisks_expander.t OBus_signal.t
  val expander_removed : t -> UDisks_expander.t OBus_signal.t
  val expander_added : t -> UDisks_expander.t OBus_signal.t
  val adapter_changed : t -> UDisks_adapter.t OBus_signal.t
  val adapter_removed : t -> UDisks_adapter.t OBus_signal.t
  val adapter_added : t -> UDisks_adapter.t OBus_signal.t
  val device_changed : t -> UDisks_device.t OBus_signal.t
  val device_removed : t -> UDisks_device.t OBus_signal.t
  val device_added : t -> UDisks_device.t OBus_signal.t
  type job = {
    job_device : UDisks_device.t;
    job_in_progress : bool;
    job_is_cancellable : bool;
    job_id : string;
    job_num_tasks : int;
    job_cur_task : int;
    job_cur_task_id : string;
    job_cur_task_percentage : float;
  }
  val device_job_changed : t -> UDisks.job OBus_signal.t
  type fs = {
    fs_id : string;
    fs_name : string;
    fs_supports_unix_owners : bool;
    fs_can_mount : bool;
    fs_can_create : bool;
    fs_max_label_len : int;
    fs_supports_label_rename : bool;
    fs_supports_online_label_rename : bool;
    fs_supports_fsck : bool;
    fs_supports_online_fsck : bool;
    fs_supports_resize_enlarge : bool;
    fs_supports_online_resize_enlarge : bool;
    fs_supports_resize_shrink : bool;
    fs_supports_online_resize_shrink : bool;
  }
  val known_filesystems : t -> UDisks.fs list OBus_property.r
  val supports_luks_devices : t -> bool OBus_property.r
  val daemon_is_inhibited : t -> bool OBus_property.r
  val daemon_version : t -> string OBus_property.r
  val properties : t -> OBus_property.group
end