sig
  exception Error of int
  val string_of_error : int -> string
  type sample_format =
      Sample_format_s16le
    | Sample_format_s16be
    | Sample_format_float32le
    | Sample_format_float32be
  type sample = {
    sample_format : Pulseaudio.sample_format;
    sample_rate : int;
    sample_chans : int;
  }
  type map
  type dir = Dir_nodirection | Dir_playback | Dir_record | Dir_upload
  type buffer_attr = {
    max_length : int;
    target_length : int;
    prebuffering : int;
    min_request : int;
    fragment_size : int;
  }
  module Simple :
    sig
      type t
      val create :
        ?server:string ->
        client_name:string ->
        dir:Pulseaudio.dir ->
        ?dev:string ->
        stream_name:string ->
        sample:Pulseaudio.sample ->
        ?map:Pulseaudio.map ->
        ?attr:Pulseaudio.buffer_attr -> unit -> Pulseaudio.Simple.t
      val free : Pulseaudio.Simple.t -> unit
      val read :
        Pulseaudio.Simple.t -> float array array -> int -> int -> unit
      val write :
        Pulseaudio.Simple.t -> float array array -> int -> int -> unit
      val drain : Pulseaudio.Simple.t -> unit
      val flush : Pulseaudio.Simple.t -> unit
      val latency : Pulseaudio.Simple.t -> int
    end
end