`sig
type mt
type curlPipelining = PIPE_NOTHING | PIPE_HTTP1 | PIPE_MULTIPLEX
type curlMultiOption =
CURLMOPT_PIPELINING of Curl.Multi.curlPipelining list
| CURLMOPT_MAXCONNECTS of int
| CURLMOPT_MAX_PIPELINE_LENGTH of int
| CURLMOPT_MAX_HOST_CONNECTIONS of int
| CURLMOPT_MAX_TOTAL_CONNECTIONS of int
exception Error of string
type cerror
exception CError of string * Curl.Multi.cerror * string
val create : unit -> Curl.Multi.mt
val add : Curl.Multi.mt -> Curl.t -> unit
val remove : Curl.Multi.mt -> Curl.t -> unit
val perform : Curl.Multi.mt -> int
val wait : ?timeout_ms:int -> Curl.Multi.mt -> bool
val poll : ?timeout_ms:int -> Curl.Multi.mt -> bool
val remove_finished : Curl.Multi.mt -> (Curl.t * Curl.curlCode) option
val cleanup : Curl.Multi.mt -> unit
type poll = POLL_NONE | POLL_IN | POLL_OUT | POLL_INOUT | POLL_REMOVE
type fd_status = EV_AUTO | EV_IN | EV_OUT | EV_INOUT
val set_socket_function :
Curl.Multi.mt -> (Unix.file_descr -> Curl.Multi.poll -> unit) -> unit
val set_timer_function : Curl.Multi.mt -> (int -> unit) -> unit
val action_all : Curl.Multi.mt -> int
val action_timeout : Curl.Multi.mt -> unit
val action :
Curl.Multi.mt -> Unix.file_descr -> Curl.Multi.fd_status -> int
external timeout : Curl.Multi.mt -> int = "caml_curl_multi_timeout"
val setopt : Curl.Multi.mt -> Curl.Multi.curlMultiOption -> unit
end`