sig
  type suff = [ `WithSuffix | `WithoutSuffix ]
  type servcoserv = [ `Coservice | `Service ]
  type getpost = [ `Get | `Post ]
  type attached_service_kind =
      [ `External | `Internal of Eliom_service.servcoserv ]
  type internal = [ `Internal of Eliom_service.servcoserv ]
  type registrable = [ `Registrable | `Unregistrable ]
  type (+'a, +'b) a_s
  type +'a na_s
  type service_kind =
      [ `Attached of
          (Eliom_service.attached_service_kind, Eliom_service.getpost)
          Eliom_service.a_s
      | `Nonattached of Eliom_service.getpost Eliom_service.na_s ]
  type internal_service_kind =
      [ `Attached of
          (Eliom_service.internal, Eliom_service.getpost) Eliom_service.a_s
      | `Nonattached of Eliom_service.getpost Eliom_service.na_s ]
  type get_service_kind =
      [ `Attached of
          (Eliom_service.attached_service_kind, [ `Get ]) Eliom_service.a_s
      | `Nonattached of [ `Get ] Eliom_service.na_s ]
  type post_service_kind =
      [ `Attached of
          (Eliom_service.attached_service_kind, [ `Post ]) Eliom_service.a_s
      | `Nonattached of [ `Post ] Eliom_service.na_s ]
  type attached =
      [ `Attached of
          (Eliom_service.attached_service_kind, Eliom_service.getpost)
          Eliom_service.a_s ]
  type nonattached =
      [ `Nonattached of Eliom_service.getpost Eliom_service.na_s ]
  type http
  type appl_service
  type ('a, 'b, +'c, +'d, +'e, +'f, +'g, +'h) service
    constraint 'd = [< Eliom_service.suff ]
    constraint 'g = [< Eliom_service.registrable ]
  val void_coservice' :
    (unit, unit, [> `Nonattached of 'Eliom_service.na_s ],
     [ `WithoutSuffix ], unit, unit,
     [< Eliom_service.registrable > `Unregistrable ], 'b)
    Eliom_service.service
  val https_void_coservice' :
    (unit, unit, [> `Nonattached of 'Eliom_service.na_s ],
     [ `WithoutSuffix ], unit, unit,
     [< Eliom_service.registrable > `Unregistrable ], 'b)
    Eliom_service.service
  val void_hidden_coservice' :
    (unit, unit, [> `Nonattached of 'Eliom_service.na_s ],
     [ `WithoutSuffix ], unit, unit,
     [< Eliom_service.registrable > `Unregistrable ], 'b)
    Eliom_service.service
  val https_void_hidden_coservice' :
    (unit, unit, [> `Nonattached of 'Eliom_service.na_s ],
     [ `WithoutSuffix ], unit, unit,
     [< Eliom_service.registrable > `Unregistrable ], 'b)
    Eliom_service.service
  val add_non_localized_get_parameters :
    params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.non_localized_params ->
    service:('c, 'd, 'e, [< Eliom_service.suff ] as 'f, 'g, 'h,
             [< Eliom_service.registrable ] as 'i, 'j)
            Eliom_service.service ->
    ('c * 'a, 'd, 'e, 'f, 'g * 'b, 'h, 'i, 'j) Eliom_service.service
  val add_non_localized_post_parameters :
    params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.non_localized_params ->
    service:('c, 'd, 'e, [< Eliom_service.suff ] as 'f, 'g, 'h,
             [< Eliom_service.registrable ] as 'i, 'j)
            Eliom_service.service ->
    ('c, 'd * 'a, 'e, 'f, 'g, 'h * 'b, 'i, 'j) Eliom_service.service
  val static_dir :
    unit ->
    (string list, unit,
     [> `Attached of
          ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
     [ `WithSuffix ], [ `One of string list ] Eliom_parameter.param_name,
     unit, [< Eliom_service.registrable > `Unregistrable ], 'a)
    Eliom_service.service
  val https_static_dir :
    unit ->
    (string list, unit,
     [> `Attached of
          ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
     [ `WithSuffix ], [ `One of string list ] Eliom_parameter.param_name,
     unit, [< Eliom_service.registrable > `Unregistrable ], 'a)
    Eliom_service.service
  val static_dir_with_params :
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    unit ->
    (string list * 'a, unit,
     [> `Attached of
          ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
     [ `WithSuffix ],
     [ `One of string list ] Eliom_parameter.param_name * 'b, unit,
     [< Eliom_service.registrable > `Unregistrable ], 'c)
    Eliom_service.service
  val https_static_dir_with_params :
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    unit ->
    (string list * 'a, unit,
     [> `Attached of
          ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
     [ `WithSuffix ],
     [ `One of string list ] Eliom_parameter.param_name * 'b, unit,
     [< Eliom_service.registrable > `Unregistrable ], 'c)
    Eliom_service.service
  val get_get_or_post :
    ('a, 'b,
     [< `Attached of
          (Eliom_service.attached_service_kind, [< Eliom_service.getpost ])
          Eliom_service.a_s
      | `Nonattached of [< Eliom_service.getpost ] Eliom_service.na_s ],
     [< Eliom_service.suff ], 'c, 'd, [< Eliom_service.registrable ], 'e)
    Eliom_service.service -> Eliom_service.getpost
  val get_kind_ :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> 'c
  val get_pre_applied_parameters_ :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service ->
    (string * string) list Eliom_lib.String.Table.t * (string * string) list
  val get_get_params_type_ :
    ('a, 'b, 'c, [< Eliom_service.suff ] as 'd, 'e, 'f,
     [< Eliom_service.registrable ], 'g)
    Eliom_service.service -> ('a, 'd, 'e) Eliom_parameter.params_type
  val get_post_params_type_ :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service ->
    ('b, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type
  val get_att_kind_ : ('a, 'b) Eliom_service.a_s -> 'a
  val get_sub_path_ : ('a, 'b) Eliom_service.a_s -> Eliom_lib.Url.path
  val get_full_path_ : ('a, 'b) Eliom_service.a_s -> Eliom_lib.Url.path
  val get_prefix_ : ('a, 'b) Eliom_service.a_s -> string
  val get_get_name_ : ('a, 'b) Eliom_service.a_s -> Eliom_common.att_key_serv
  val get_post_name_ :
    ('a, 'b) Eliom_service.a_s -> Eliom_common.att_key_serv
  val get_redirect_suffix_ : ('a, 'b) Eliom_service.a_s -> bool
  val get_na_name_ : 'Eliom_service.na_s -> Eliom_common.na_key_serv
  val get_na_kind_ : 'Eliom_service.na_s -> [ `Get | `Post of bool ]
  val get_max_use_ :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> int option
  val get_timeout_ :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> float option
  val get_https :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> bool
  val get_priority_ : ('a, 'b) Eliom_service.a_s -> int
  val keep_nl_params :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> [ `All | `None | `Persistent ]
  val change_get_num :
    ('a, 'b, 'c, [< Eliom_service.suff ] as 'd, 'e, 'f,
     [< Eliom_service.registrable ], 'g)
    Eliom_service.service ->
    ('h, 'i) Eliom_service.a_s ->
    Eliom_common.att_key_serv ->
    ('a, 'b, [> `Attached of ('h, 'i) Eliom_service.a_s ], 'd, 'e, 'f,
     [< Eliom_service.registrable ], 'g)
    Eliom_service.service
  val register_delayed_get_or_na_coservice :
    sp:Eliom_common.server_params ->
    int * Eliom_common.user_scope * bool option -> string
  val register_delayed_post_coservice :
    sp:Eliom_common.server_params ->
    int * Eliom_common.user_scope * bool option ->
    Eliom_common.att_key_serv -> string
  type send_appl_content =
      XNever
    | XAlways
    | XSame_appl of string * string option
  val get_send_appl_content :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> Eliom_service.send_appl_content
  val xhr_with_cookies :
    ('a, 'b, 'c, [< Eliom_service.suff ], 'd, 'e,
     [< Eliom_service.registrable ], 'f)
    Eliom_service.service -> string option option
end