sig
  type page = Xhtmltypes.xhtml XHTML.M.elt
  val new_service :
    url:Ocsigen.url_path ->
    ?prefix:bool ->
    get_params:('a, [< `WithSuffix | `WithoutSuffix ] as 'b, 'c)
               Ocsigen.params_type ->
    unit ->
    ('a, unit, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c,
     unit Ocsigen.param_name)
    Ocsigen.service
  val new_external_service :
    url:Ocsigen.url_path ->
    ?prefix:bool ->
    get_params:('a, [< `WithSuffix | `WithoutSuffix ] as 'b, 'c)
               Ocsigen.params_type ->
    post_params:('d, [ `WithoutSuffix ], 'e) Ocsigen.params_type ->
    unit -> ('a, 'd, [ `External_Service ], 'b, 'c, 'e) Ocsigen.service
  val new_auxiliary_service :
    fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c,
              'd)
             Ocsigen.service ->
    ('a, unit, [ `Internal_Service of [ `Local_Service ] ], 'b, 'c, 'd)
    Ocsigen.service
  val register_service :
    service:('a, 'b, [ `Internal_Service of 'c ],
             [< `WithSuffix | `WithoutSuffix ], 'd, 'e)
            Ocsigen.service ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> '-> Ocsigen.Xhtml.page Lwt.t) -> unit
  val register_service_for_session :
    Ocsigen.server_params ->
    service:('a, 'b, [ `Internal_Service of 'c ],
             [< `WithSuffix | `WithoutSuffix ], 'd, 'e)
            Ocsigen.service ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> '-> Ocsigen.Xhtml.page Lwt.t) -> unit
  val register_new_service :
    url:Ocsigen.url_path ->
    ?prefix:bool ->
    get_params:('a, [< `WithSuffix | `WithoutSuffix ] as 'b, 'c)
               Ocsigen.params_type ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> unit -> Ocsigen.Xhtml.page Lwt.t) ->
    ('a, unit, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c,
     unit Ocsigen.param_name)
    Ocsigen.service
  val register_new_auxiliary_service :
    fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ],
              [< `WithSuffix | `WithoutSuffix ] as 'b, 'c, 'd)
             Ocsigen.service ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> unit -> Ocsigen.Xhtml.page Lwt.t) ->
    ('a, unit, [ `Internal_Service of [ `Local_Service ] ], 'b, 'c, 'd)
    Ocsigen.service
  val register_new_auxiliary_service_for_session :
    Ocsigen.server_params ->
    fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ],
              [< `WithSuffix | `WithoutSuffix ] as 'b, 'c, 'd)
             Ocsigen.service ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> unit -> Ocsigen.Xhtml.page Lwt.t) ->
    ('a, unit, [ `Internal_Service of [ `Local_Service ] ], 'b, 'c, 'd)
    Ocsigen.service
  val new_post_service :
    fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c,
              unit Ocsigen.param_name)
             Ocsigen.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Ocsigen.params_type ->
    ('a, 'd, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c, 'e)
    Ocsigen.service
  val new_post_auxiliary_service :
    fallback:('a, 'b, [ `Internal_Service of [ `Public_Service ] ], 'c, 'd,
              'e)
             Ocsigen.service ->
    post_params:('f, [ `WithoutSuffix ], 'g) Ocsigen.params_type ->
    ('a, 'f, [ `Internal_Service of [ `Local_Service ] ], 'c, 'd, 'g)
    Ocsigen.service
  val register_new_post_service :
    fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ],
              [< `WithSuffix | `WithoutSuffix ] as 'b, 'c,
              unit Ocsigen.param_name)
             Ocsigen.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Ocsigen.params_type ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> '-> Ocsigen.Xhtml.page Lwt.t) ->
    ('a, 'd, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c, 'e)
    Ocsigen.service
  val register_new_post_auxiliary_service :
    fallback:('a, 'b, [ `Internal_Service of [ `Public_Service ] ],
              [< `WithSuffix | `WithoutSuffix ] as 'c, 'd, 'e)
             Ocsigen.service ->
    post_params:('f, [ `WithoutSuffix ], 'g) Ocsigen.params_type ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> '-> Ocsigen.Xhtml.page Lwt.t) ->
    ('a, 'f, [ `Internal_Service of [ `Local_Service ] ], 'c, 'd, 'g)
    Ocsigen.service
  val register_new_post_auxiliary_service_for_session :
    Ocsigen.server_params ->
    fallback:('a, 'b, [ `Internal_Service of [ `Public_Service ] ],
              [< `WithSuffix | `WithoutSuffix ] as 'c, 'd, 'e)
             Ocsigen.service ->
    post_params:('f, [ `WithoutSuffix ], 'g) Ocsigen.params_type ->
    ?error_handler:(Ocsigen.server_params ->
                    (string * exn) list -> Ocsigen.Xhtml.page Lwt.t) ->
    (Ocsigen.server_params -> '-> '-> Ocsigen.Xhtml.page Lwt.t) ->
    ('a, 'f, [ `Internal_Service of [ `Local_Service ] ], 'c, 'd, 'g)
    Ocsigen.service
  val static_dir :
    Ocsigen.server_params ->
    (string, unit, [ `Internal_Service of [ `Public_Service ] ],
     [ `WithSuffix ], string Ocsigen.param_name, unit Ocsigen.param_name)
    Ocsigen.service
  val close_session : Ocsigen.server_params -> unit
  type ('a, 'b) action
  val new_action :
    post_params:('a, [ `WithoutSuffix ], 'b) Ocsigen.params_type ->
    ('a, 'b) Ocsigen.Xhtml.action
  val register_action :
    action:('a, 'b) Ocsigen.Xhtml.action ->
    (Ocsigen.server_params -> '-> unit Lwt.t) -> unit
  val register_action_for_session :
    Ocsigen.server_params ->
    action:('a, 'b) Ocsigen.Xhtml.action ->
    (Ocsigen.server_params -> '-> unit Lwt.t) -> unit
  val register_new_action :
    post_params:('a, [ `WithoutSuffix ], 'b) Ocsigen.params_type ->
    (Ocsigen.server_params -> '-> unit Lwt.t) ->
    ('a, 'b) Ocsigen.Xhtml.action
  val register_new_action_for_session :
    Ocsigen.server_params ->
    post_params:('a, [ `WithoutSuffix ], 'b) Ocsigen.params_type ->
    (Ocsigen.server_params -> '-> unit Lwt.t) ->
    ('a, 'b) Ocsigen.Xhtml.action
  val a :
    ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
    ('a, unit, 'b, [< `WithSuffix | `WithoutSuffix ], 'c,
     unit Ocsigen.param_name)
    Ocsigen.service ->
    Ocsigen.server_params ->
    Xhtmltypes.a_content XHTML.M.elt list ->
    '-> [> Xhtmltypes.a ] XHTML.M.elt
  val css_link :
    ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
    XHTML.M.uri -> [> Xhtmltypes.link ] XHTML.M.elt
  val js_script :
    ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
    XHTML.M.uri -> [> Xhtmltypes.script ] XHTML.M.elt
  val make_uri :
    ('a, unit, 'b, [< `WithSuffix | `WithoutSuffix ], 'c, 'd) Ocsigen.service ->
    Ocsigen.server_params -> '-> XHTML.M.uri
  val get_form :
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    ('a, unit, 'b, 'c, 'd, unit Ocsigen.param_name) Ocsigen.service ->
    Ocsigen.server_params ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
    [> Xhtmltypes.form ] XHTML.M.elt
  val post_form :
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    ('a, 'b, 'c, [< `WithSuffix | `WithoutSuffix ], 'd, 'e) Ocsigen.service ->
    Ocsigen.server_params ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
    '-> [> Xhtmltypes.form ] XHTML.M.elt
  val int_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:int -> int Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:float ->
    float Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:string ->
    string Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:'->
    ('-> string) ->
    'Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val int_password_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:int -> int Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_password_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:float ->
    float Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_password_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:string ->
    string Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_password_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:'->
    ('-> string) ->
    'Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val hidden_int_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    int Ocsigen.param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
  val hidden_float_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    float Ocsigen.param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
  val hidden_string_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    string Ocsigen.param_name -> string -> [> Xhtmltypes.input ] XHTML.M.elt
  val hidden_user_type_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ('-> string) ->
    'Ocsigen.param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
  val bool_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    bool Ocsigen.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    string option Ocsigen.param_name ->
    string -> [> Xhtmltypes.input ] XHTML.M.elt
  val int_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    int option Ocsigen.param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    float option Ocsigen.param_name ->
    float -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    ('-> string) ->
    'a option Ocsigen.param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
  val textarea :
    ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
    string Ocsigen.param_name ->
    rows:XHTML.M.number ->
    cols:XHTML.M.number ->
    [ `PCDATA ] XHTML.M.elt -> [> Xhtmltypes.textarea ] XHTML.M.elt
  val select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    ?selected:(string option * string) option ->
    string option * string ->
    (string option * string) list ->
    string Ocsigen.param_name -> [> Xhtmltypes.select ] XHTML.M.elt
  val submit_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    string -> [> Xhtmltypes.input ] XHTML.M.elt
  val file_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?value:string ->
    Extensions.file_info Ocsigen.param_name ->
    [> Xhtmltypes.input ] XHTML.M.elt
  val action_a :
    ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
    ?reload:bool ->
    ('a, 'b) Ocsigen.Xhtml.action ->
    Ocsigen.server_params ->
    Xhtmltypes.a_content XHTML.M.elt list -> [> Xhtmltypes.form ] XHTML.M.elt
  val action_form :
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    ?reload:bool ->
    ('a, 'b) Ocsigen.Xhtml.action ->
    Ocsigen.server_params ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
    [> Xhtmltypes.form ] XHTML.M.elt
end