sig
  type page = page * Eliomservices.cookie list
  val send :
    ?cookies:Eliomservices.cookie list ->
    ?charset:string ->
    ?code:int ->
    sp:Eliomsessions.server_params ->
    page -> Eliomservices.result_to_send Lwt.t
  val register :
    ?sp:Eliomsessions.server_params ->
    service:('a, 'b, [< Eliomservices.internal_service_kind ],
             [< Eliomservices.suff ], 'c, 'd, [ `Registrable ])
            Eliomservices.service ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> '-> page Lwt.t) -> unit
  val register_for_session :
    ?session_name:string ->
    sp:Eliomsessions.server_params ->
    service:('a, 'b, [< Eliomservices.internal_service_kind ],
             [< Eliomservices.suff ], 'c, 'd, [ `Registrable ])
            Eliomservices.service ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> '-> page Lwt.t) -> unit
  val register_new_service :
    ?sp:Eliomsessions.server_params ->
    path:Extensions.url_path ->
    get_params:('a, [< Eliomservices.suff ] as 'b, 'c)
               Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit,
     [> `Attached of
          [> `Internal of [> `Service ] * [> `Get ] ] Eliomservices.a_s ],
     'b, 'c, unit, [> `Registrable ])
    Eliomservices.service
  val register_new_coservice :
    ?sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    fallback:(unit, unit,
              [ `Attached of
                  [ `Internal of [ `Service ] * [ `Get ] ] Eliomservices.a_s ],
              [ `WithoutSuffix ], unit, unit, [< Eliomservices.registrable ])
             Eliomservices.service ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Get ] ] Eliomservices.a_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliomservices.service
  val register_new_coservice' :
    ?sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit, [> `Nonattached of [> `Get ] Eliomservices.na_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliomservices.service
  val register_new_coservice_for_session :
    ?session_name:string ->
    sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    fallback:(unit, unit,
              [ `Attached of
                  [ `Internal of [ `Service ] * [ `Get ] ] Eliomservices.a_s ],
              [ `WithoutSuffix ], unit, unit, [< Eliomservices.registrable ])
             Eliomservices.service ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Get ] ] Eliomservices.a_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliomservices.service
  val register_new_coservice_for_session' :
    ?session_name:string ->
    sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit, [> `Nonattached of [> `Get ] Eliomservices.na_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliomservices.service
  val register_new_post_service :
    ?sp:Eliomsessions.server_params ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                  Eliomservices.a_s ],
              [< Eliomservices.suff ] as 'b, 'c, unit, [< `Registrable ])
             Eliomservices.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> '-> page Lwt.t) ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
          Eliomservices.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliomservices.service
  val register_new_post_coservice :
    ?sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                  Eliomservices.a_s ],
              [< Eliomservices.suff ] as 'b, 'c, unit, [< `Registrable ])
             Eliomservices.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> '-> page Lwt.t) ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Post ] ] Eliomservices.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliomservices.service
  val register_new_post_coservice' :
    ?sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    post_params:('a, [ `WithoutSuffix ], 'b) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> unit -> '-> page Lwt.t) ->
    (unit, 'a, [> `Nonattached of [> `Post ] Eliomservices.na_s ],
     [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
    Eliomservices.service
  val register_new_post_coservice_for_session :
    ?session_name:string ->
    sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                  Eliomservices.a_s ],
              [< Eliomservices.suff ] as 'b, 'c, unit, [ `Registrable ])
             Eliomservices.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> '-> '-> page Lwt.t) ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Post ] ] Eliomservices.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliomservices.service
  val register_new_post_coservice_for_session' :
    ?session_name:string ->
    sp:Eliomsessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    post_params:('a, [ `WithoutSuffix ], 'b) Eliomparameters.params_type ->
    ?error_handler:(Eliomsessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliomsessions.server_params -> unit -> '-> page Lwt.t) ->
    (unit, 'a, [> `Nonattached of [> `Post ] Eliomservices.na_s ],
     [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
    Eliomservices.service
end