`sig
val app_name : string Pervasives.ref
val desktop_entry : string option Pervasives.ref
type 'a t
val result : 'a Notification.t -> 'a Lwt.t
val close : 'a Notification.t -> unit Lwt.t
type urgency = [ `Critical | `Low | `Normal ]
type image = {
img_width : int;
img_height : int;
img_rowstride : int;
img_has_alpha : bool;
img_bits_per_sample : int;
img_channels : int;
img_data : string;
}
val notify :
?app_name:string ->
?desktop_entry:string ->
?replace:'b Notification.t ->
?icon:string ->
?image:Notification.image ->
summary:string ->
?body:string ->
?actions:(string * ([> `Closed | `Default ] as 'a)) list ->
?urgency:Notification.urgency ->
?category:string ->
?sound_file:string ->
?suppress_sound:bool ->
?pos:int * int ->
?hints:(string * OBus_value.V.single) list ->
?timeout:int -> unit -> 'a Notification.t Lwt.t
type server_info = {
server_name : string;
server_vendor : string;
server_version : string;
server_spec_version : string;
}
val get_server_information : unit -> Notification.server_info Lwt.t
val get_capabilities : unit -> string list Lwt.t
end`