# Module DBus

    module DBus: sig .. end

    exception Error of string * string

    type bus

    type message

    type pending_call

    type watch

    type timeout

    type service = string

    type interface = string

    type path = string

    type add_watch_fn = watch -> bool

    type rm_watch_fn = watch -> unit

    type toggle_watch_fn = watch -> unit

    type add_timeout_fn = timeout -> bool

    type rm_timeout_fn = timeout -> unit

    type toggle_timeout_fn = timeout -> unit

    type watch_fns = add_watch_fn * rm_watch_fn * toggle_watch_fn option

    type timeout_fns = add_timeout_fn * rm_timeout_fn * toggle_timeout_fn option

    type error_name =

`|` | `ERR_FAILED`
`|` | `ERR_NO_MEMORY`
`|` | `ERR_SERVICE_UNKNOWN`
`|` | `ERR_NAME_HAS_NO_OWNER`
`|` | `ERR_NO_REPLY`
`|` | `ERR_IO_ERROR`
`|` | `ERR_BAD_ADDRESS`
`|` | `ERR_NOT_SUPPORTED`
`|` | `ERR_LIMITS_EXCEEDED`
`|` | `ERR_ACCESS_DENIED`
`|` | `ERR_AUTH_FAILED`
`|` | `ERR_NO_SERVER`
`|` | `ERR_TIMEOUT`
`|` | `ERR_NO_NETWORK`
`|` | `ERR_ADDRESS_IN_USE`
`|` | `ERR_DISCONNECTED`
`|` | `ERR_INVALID_ARGS`
`|` | `ERR_FILE_NOT_FOUND`
`|` | `ERR_FILE_EXISTS`
`|` | `ERR_UNKNOWN_METHOD`
`|` | `ERR_TIMED_OUT`
`|` | `ERR_MATCH_RULE_NOT_FOUND`
`|` | `ERR_MATCH_RULE_INVALID`
`|` | `ERR_SPAWN_EXEC_FAILED`
`|` | `ERR_SPAWN_FORK_FAILED`
`|` | `ERR_SPAWN_CHILD_EXITED`
`|` | `ERR_SPAWN_CHILD_SIGNALED`
`|` | `ERR_SPAWN_FAILED`
`|` | `ERR_SPAWN_SETUP_FAILED`
`|` | `ERR_SPAWN_CONFIG_INVALID`
`|` | `ERR_SPAWN_SERVICE_INVALID`
`|` | `ERR_SPAWN_SERVICE_NOT_FOUND`
`|` | `ERR_SPAWN_PERMISSIONS_INVALID`
`|` | `ERR_SPAWN_FILE_INVALID`
`|` | `ERR_SPAWN_NO_MEMORY`
`|` | `ERR_UNIX_PROCESS_ID_UNKNOWN`
`|` | `ERR_INVALID_SIGNATURE`
`|` | `ERR_INVALID_FILE_CONTENT`
`|` | `ERR_SELINUX_SECURITY_CONTEXT_UNKNOWN`
`|` | `ERR_ADT_AUDIT_DATA_UNKNOWN`
`|` | `ERR_OBJECT_PATH_IN_USE`

    type ty_sig =

`|` | `SigByte`
`|` | `SigBool`
`|` | `SigInt16`
`|` | `SigUInt16`
`|` | `SigInt32`
`|` | `SigUInt32`
`|` | `SigInt64`
`|` | `SigUInt64`
`|` | `SigDouble`
`|` | `SigString`
`|` | `SigObjectPath`
`|` | `SigVariant`
`|` | `SigArray of `ty_sig``
`|` | `SigStruct of `ty_sig list``
`|` | `SigDict of `ty_sig * ty_sig``

    type ty_array =

`|` | `Unknowns`
`|` | `Bytes of `char list``
`|` | `Bools of `bool list``
`|` | `Int16s of `int list``
`|` | `UInt16s of `int list``
`|` | `Int32s of `int32 list``
`|` | `UInt32s of `int32 list``
`|` | `Int64s of `int64 list``
`|` | `UInt64s of `int64 list``
`|` | `Doubles of `float list``
`|` | `Strings of `string list``
`|` | `ObjectPaths of `string list``
`|` | `Structs of `ty_sig list * ty list list``
`|` | `Variants of `ty list``
`|` | `Dicts of `(ty_sig * ty_sig) * (ty * ty) list``
`|` | `Arrays of `ty_sig * ty_array list``

    type ty =

`|` | `Unknown`
`|` | `Byte of `char``
`|` | `Bool of `bool``
`|` | `Int16 of `int``
`|` | `UInt16 of `int``
`|` | `Int32 of `int32``
`|` | `UInt32 of `int32``
`|` | `Int64 of `int64``
`|` | `UInt64 of `int64``
`|` | `Double of `float``
`|` | `String of `string``
`|` | `ObjectPath of `string``
`|` | `Array of `ty_array``
`|` | `Struct of `ty list``
`|` | `Variant of `ty``

    val string_of_ty : ty -> string

    val string_of_error_name : error_name -> string

    module Bus: sig .. end

    module Message: sig .. end

    module Connection: sig .. end

    module PendingCall: sig .. end

    module Watch: sig .. end

    module Timeout: sig .. end

    module Helper: sig .. end