sig
  type metadata = (string, string) Hashtbl.t
  type indicator
  val indicator :
    ?metadata:Request.metadata ->
    ?temporary:bool -> string -> Request.indicator
  type t
  val create :
    kind:Frame.content_kind ->
    ?metadata:(string * string) list ->
    ?persistent:bool ->
    ?indicators:Request.indicator list -> string -> Request.t
  val create_raw :
    ?metadata:(string * string) list ->
    ?persistent:bool ->
    ?indicators:Request.indicator list -> string -> Request.t
  val kind : Request.t -> Frame.content_kind option
  val destroy : ?force:bool -> Request.t -> unit
  val clean : unit -> unit
  val get_id : Request.t -> int
  val from_id : int -> Request.t option
  val all_requests : unit -> int list
  val alive_requests : unit -> int list
  val on_air_requests : unit -> int list
  val resolving_requests : unit -> int list
  type protocol = {
    resolve :
      string -> log:(string -> unit) -> float -> Request.indicator list;
    static : bool;
  }
  val is_static : string -> bool option
  type resolve_flag = Resolved | Failed | Timeout
  val resolve : Request.t -> float -> Request.resolve_flag
  val is_ready : Request.t -> bool
  val get_filename : Request.t -> string option
  val pop_indicator : Request.t -> unit
  val peek_indicator : Request.t -> string
  val push_indicators : Request.t -> Request.indicator list -> unit
  val string_of_metadata : Request.metadata -> string
  val short_string_of_metadata : Request.metadata -> string
  val set_metadata : Request.t -> string -> string -> unit
  val get_metadata : Request.t -> string -> string option
  val set_root_metadata : Request.t -> string -> string -> unit
  val get_root_metadata : Request.t -> string -> string option
  val get_all_metadata : Request.t -> Request.metadata
  type log = (Unix.tm * string) Queue.t
  val string_of_log : Request.log -> string
  val add_log : Request.t -> string -> unit
  val get_log : Request.t -> Request.log
  val on_air : Request.t -> unit
  val is_on_air : Request.t -> bool
  val duration : string -> float
  val get_decoder : Request.t -> Decoder.file_decoder option
  val dresolvers : (string -> float) Plug.plug
  val mresolvers : (string -> (string * string) list) Plug.plug
  val protocols : Request.protocol Plug.plug
end