sig
  type t
  type parameters = { samplerate : int; channels : int; bitrate : int; }
  exception Invalid_buffer_size
  exception Invalid_configuration
  exception Invalid_channels
  val create : Shine.parameters -> Shine.t
  val samples_per_pass : Shine.t -> int
  val encode_buffer : Shine.t -> float array array -> string
  val encode_s16le : Shine.t -> string -> int -> string
  val flush : Shine.t -> string
end