sig
  module Consumer :
    sig
      type t = { key : string; secret : string; }
      val ocamltter : Auth.Consumer.t
    end
  module Token : sig type t = { token : string; secret : string; } end
  module VerifiedToken : sig type t = Auth.Token.t * string end
  val oauth : Auth.Consumer.t -> Auth.VerifiedToken.t -> Oauth.t
  val fetch_request_token : Auth.Consumer.t -> string * Auth.Token.t
  val fetch_access_token :
    Auth.Consumer.t -> Auth.VerifiedToken.t -> string * Auth.Token.t
  val access :
    Oauth.t ->
    Http.meth ->
    string ->
    string ->
    (string * string) list ->
    (Http.header -> Pervasives.in_channel -> 'a) -> 'a
  val access_https :
    Oauth.t ->
    Http.meth ->
    string ->
    string ->
    (string * string) list ->
    [> `Error of [> `Http of int * string ] | `Ok of string ]
end