sig
  type server_params
  val get_user_agent : sp:Eliom_sessions.server_params -> string
  val get_full_url : sp:Eliom_sessions.server_params -> string
  val get_remote_ip : sp:Eliom_sessions.server_params -> string
  val get_remote_inet_addr :
    sp:Eliom_sessions.server_params -> Unix.inet_addr
  val get_current_full_path_string :
    sp:Eliom_sessions.server_params -> string
  val get_current_full_path :
    sp:Eliom_sessions.server_params -> Ocsigen_lib.url_path
  val get_original_full_path_string :
    sp:Eliom_sessions.server_params -> string
  val get_original_full_path :
    sp:Eliom_sessions.server_params -> Ocsigen_lib.url_path
  val get_current_sub_path_string : sp:Eliom_sessions.server_params -> string
  val get_current_sub_path :
    sp:Eliom_sessions.server_params -> Ocsigen_lib.url_path
  val get_header_hostname : sp:Eliom_sessions.server_params -> string option
  val get_default_hostname : sp:Eliom_sessions.server_params -> string
  val get_hostname : sp:Eliom_sessions.server_params -> string
  val get_default_port : sp:Eliom_sessions.server_params -> int
  val get_default_sslport : sp:Eliom_sessions.server_params -> int
  val get_server_port : sp:Eliom_sessions.server_params -> int
  val get_ssl : sp:Eliom_sessions.server_params -> bool
  val get_suffix :
    sp:Eliom_sessions.server_params -> Ocsigen_lib.url_path option
  val get_cookies :
    sp:Eliom_sessions.server_params -> string Ocsigen_lib.String_Table.t
  val set_global_volatile_session_timeout :
    ?session_name:string option ->
    ?sp:Eliom_sessions.server_params ->
    ?recompute_expdates:bool ->
    ?override_configfile:bool -> float option -> unit
  val set_global_service_session_timeout :
    ?session_name:string option ->
    ?sp:Eliom_sessions.server_params ->
    ?recompute_expdates:bool ->
    ?override_configfile:bool -> float option -> unit
  val set_global_volatile_data_session_timeout :
    ?session_name:string option ->
    ?sp:Eliom_sessions.server_params ->
    ?recompute_expdates:bool ->
    ?override_configfile:bool -> float option -> unit
  val set_global_persistent_data_session_timeout :
    ?session_name:string option ->
    ?sp:Eliom_sessions.server_params ->
    ?recompute_expdates:bool ->
    ?override_configfile:bool -> float option -> unit
  val get_global_service_session_timeout :
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> float option
  val get_global_volatile_data_session_timeout :
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> float option
  val get_global_persistent_data_session_timeout :
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> float option
  val set_service_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> float option -> unit
  val unset_service_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val get_service_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> float option
  val set_volatile_data_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> float option -> unit
  val unset_volatile_data_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val get_volatile_data_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> float option
  val set_volatile_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> float option -> unit
  val unset_volatile_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val set_persistent_data_session_timeout :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params -> float option -> unit Lwt.t
  val unset_persistent_data_session_timeout :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val get_persistent_data_session_timeout :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params -> unit -> float option Lwt.t
  type 'a session_data = No_data | Data_session_expired | Data of 'a
  val set_service_session_group :
    ?set_max:int ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> string -> unit
  val unset_service_session_group :
    ?set_max:int ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val get_service_session_group :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    unit -> string Eliom_sessions.session_data
  val set_volatile_data_session_group :
    ?set_max:int ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> string -> unit
  val unset_volatile_data_session_group :
    ?set_max:int ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val get_volatile_data_session_group :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    unit -> string Eliom_sessions.session_data
  val set_persistent_data_session_group :
    ?set_max:int option ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> string -> unit Lwt.t
  val unset_persistent_data_session_group :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val get_persistent_data_session_group :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    unit -> string Eliom_sessions.session_data Lwt.t
  val set_default_max_service_sessions_per_group :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int -> unit
  val set_default_max_volatile_data_sessions_per_group :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int -> unit
  val set_default_max_persistent_data_sessions_per_group :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int option -> unit
  val set_default_max_service_sessions_per_subnet :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int -> unit
  val set_default_max_volatile_data_sessions_per_subnet :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int -> unit
  val set_default_max_volatile_sessions_per_group :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int -> unit
  val set_default_max_volatile_sessions_per_subnet :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int -> unit
  val set_ipv4_subnet_mask :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int32 -> unit
  val set_ipv6_subnet_mask :
    ?sp:Eliom_sessions.server_params ->
    ?override_configfile:bool -> int64 * int64 -> unit
  val set_max_service_sessions_for_group_or_subnet :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> int -> unit
  val set_max_volatile_data_sessions_for_group_or_subnet :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> int -> unit
  val set_volatile_session_cookies_exp_date :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> float option -> unit
  val set_service_session_cookie_exp_date :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> float option -> unit
  val set_volatile_data_session_cookie_exp_date :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> float option -> unit
  val set_persistent_data_session_cookie_exp_date :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params -> float option -> unit Lwt.t
  val get_request_cache : sp:Eliom_sessions.server_params -> Polytables.t
  val clean_request_cache : sp:Eliom_sessions.server_params -> unit
  val get_link_too_old : sp:Eliom_sessions.server_params -> bool
  val get_expired_service_sessions :
    sp:Eliom_sessions.server_params -> string list
  val get_previous_extension_error_code : sp:server_params -> int
  val get_tmp_filename : Ocsigen_lib.file_info -> string
  val get_filesize : Ocsigen_lib.file_info -> int64
  val get_original_filename : Ocsigen_lib.file_info -> string
  val get_config : unit -> Simplexmlparser.xml list
  val get_site_dir : sp:Eliom_sessions.server_params -> Ocsigen_lib.url_path
  val get_config_default_charset : sp:Eliom_sessions.server_params -> string
  type 'a volatile_table
  val create_volatile_table :
    ?sp:Eliom_sessions.server_params ->
    unit -> 'Eliom_sessions.volatile_table
  val get_volatile_session_data :
    ?session_name:string ->
    ?secure:bool ->
    table:'Eliom_sessions.volatile_table ->
    sp:Eliom_sessions.server_params -> unit -> 'Eliom_sessions.session_data
  val set_volatile_session_data :
    ?session_name:string ->
    ?secure:bool ->
    table:'Eliom_sessions.volatile_table ->
    sp:Eliom_sessions.server_params -> '-> unit
  val remove_volatile_session_data :
    ?session_name:string ->
    ?secure:bool ->
    table:'Eliom_sessions.volatile_table ->
    sp:Eliom_sessions.server_params -> unit -> unit
  type 'a persistent_table
  val create_persistent_table : string -> 'Eliom_sessions.persistent_table
  val get_persistent_session_data :
    ?session_name:string ->
    ?secure:bool ->
    table:'Eliom_sessions.persistent_table ->
    sp:Eliom_sessions.server_params ->
    unit -> 'Eliom_sessions.session_data Lwt.t
  val set_persistent_session_data :
    ?session_name:string ->
    ?secure:bool ->
    table:'Eliom_sessions.persistent_table ->
    sp:Eliom_sessions.server_params -> '-> unit Lwt.t
  val remove_persistent_session_data :
    ?session_name:string ->
    ?secure:bool ->
    table:'Eliom_sessions.persistent_table ->
    sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_session :
    ?close_group:bool ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_volatile_session :
    ?close_group:bool ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val close_persistent_data_session :
    ?close_group:bool ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_volatile_data_session :
    ?close_group:bool ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val close_service_session :
    ?close_group:bool ->
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> unit
  val close_all_sessions :
    ?close_group:bool ->
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_all_volatile_sessions :
    ?close_group:bool ->
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_all_persistent_data_sessions :
    ?close_group:bool ->
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_all_service_sessions :
    ?close_group:bool ->
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  val close_all_volatile_data_sessions :
    ?close_group:bool ->
    ?session_name:string ->
    ?sp:Eliom_sessions.server_params -> unit -> unit Lwt.t
  module Session_admin :
    sig
      type timeout = TGlobal | TNone | TSome of float
      type service_session
      type data_session
      type persistent_session
      val close_service_session :
        ?close_group:bool ->
        session:Eliom_sessions.Session_admin.service_session -> unit
      val close_volatile_data_session :
        ?close_group:bool ->
        session:Eliom_sessions.Session_admin.data_session -> unit
      val close_persistent_data_session :
        ?close_group:bool ->
        session:Eliom_sessions.Session_admin.persistent_session -> unit Lwt.t
      val get_volatile_session_data :
        session:Eliom_sessions.Session_admin.data_session ->
        table:'Eliom_sessions.volatile_table -> 'a
      val get_persistent_session_data :
        session:Eliom_sessions.Session_admin.persistent_session ->
        table:'Eliom_sessions.persistent_table -> 'Lwt.t
      val remove_volatile_session_data :
        session:Eliom_sessions.Session_admin.data_session ->
        table:'Eliom_sessions.volatile_table -> unit
      val remove_persistent_session_data :
        session:Eliom_sessions.Session_admin.persistent_session ->
        table:'Eliom_sessions.persistent_table -> unit Lwt.t
      val get_service_session_name :
        session:Eliom_sessions.Session_admin.service_session -> string option
      val get_volatile_data_session_name :
        session:Eliom_sessions.Session_admin.data_session -> string option
      val get_persistent_data_session_name :
        session:Eliom_sessions.Session_admin.persistent_session ->
        string option
      val set_service_session_timeout :
        session:Eliom_sessions.Session_admin.service_session ->
        float option -> unit
      val set_volatile_data_session_timeout :
        session:Eliom_sessions.Session_admin.data_session ->
        float option -> unit
      val set_persistent_data_session_timeout :
        session:Eliom_sessions.Session_admin.persistent_session ->
        float option -> unit Lwt.t
      val get_service_session_timeout :
        session:Eliom_sessions.Session_admin.service_session ->
        Eliom_sessions.Session_admin.timeout
      val get_volatile_data_session_timeout :
        session:Eliom_sessions.Session_admin.data_session ->
        Eliom_sessions.Session_admin.timeout
      val get_persistent_data_session_timeout :
        session:Eliom_sessions.Session_admin.persistent_session ->
        Eliom_sessions.Session_admin.timeout
      val unset_service_session_timeout :
        session:Eliom_sessions.Session_admin.service_session -> unit
      val unset_volatile_data_session_timeout :
        session:Eliom_sessions.Session_admin.data_session -> unit
      val unset_persistent_data_session_timeout :
        session:Eliom_sessions.Session_admin.persistent_session -> unit Lwt.t
      val iter_service_sessions :
        ?sp:Eliom_sessions.server_params ->
        (Eliom_sessions.Session_admin.service_session -> unit Lwt.t) ->
        unit Lwt.t
      val iter_volatile_data_sessions :
        ?sp:Eliom_sessions.server_params ->
        (Eliom_sessions.Session_admin.data_session -> unit Lwt.t) ->
        unit Lwt.t
      val iter_persistent_data_sessions :
        (Eliom_sessions.Session_admin.persistent_session -> unit Lwt.t) ->
        unit Lwt.t
      val fold_service_sessions :
        ?sp:Eliom_sessions.server_params ->
        (Eliom_sessions.Session_admin.service_session -> '-> 'Lwt.t) ->
        '-> 'Lwt.t
      val fold_volatile_data_sessions :
        ?sp:Eliom_sessions.server_params ->
        (Eliom_sessions.Session_admin.data_session -> '-> 'Lwt.t) ->
        '-> 'Lwt.t
      val fold_persistent_data_sessions :
        (Eliom_sessions.Session_admin.persistent_session -> '-> 'Lwt.t) ->
        '-> 'Lwt.t
    end
  val get_get_params :
    sp:Eliom_sessions.server_params -> (string * string) list
  val get_all_current_get_params :
    sp:Eliom_sessions.server_params -> (string * string) list
  val get_initial_get_params :
    sp:Eliom_sessions.server_params -> (string * string) list
  val get_other_get_params :
    sp:Eliom_sessions.server_params -> (string * string) list
  val get_nl_get_params :
    sp:Eliom_sessions.server_params ->
    (string * string) list Ocsigen_lib.String_Table.t
  val get_persistent_nl_get_params :
    sp:Eliom_sessions.server_params ->
    (string * string) list Ocsigen_lib.String_Table.t
  val get_nl_post_params :
    sp:Eliom_sessions.server_params ->
    (string * string) list Ocsigen_lib.String_Table.t
  val get_post_params :
    sp:Eliom_sessions.server_params -> (string * string) list Lwt.t
  val get_all_post_params :
    sp:Eliom_sessions.server_params -> (string * string) list
  val get_ri :
    sp:Eliom_sessions.server_params -> Ocsigen_extensions.request_info
  val get_config_info :
    sp:Eliom_sessions.server_params -> Ocsigen_extensions.config_info
  val get_request :
    sp:Eliom_sessions.server_params -> Ocsigen_extensions.request
  val get_session_name : sp:Eliom_sessions.server_params -> string option
  val get_persistent_data_session_cookie :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params -> unit -> string option Lwt.t
  val get_service_session_cookie :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> string option
  val get_volatile_data_session_cookie :
    ?session_name:string ->
    ?secure:bool -> sp:Eliom_sessions.server_params -> unit -> string option
  val number_of_service_sessions : sp:Eliom_sessions.server_params -> int
  val number_of_volatile_data_sessions :
    sp:Eliom_sessions.server_params -> int
  val number_of_tables : unit -> int
  val number_of_table_elements : unit -> int list
  val number_of_persistent_data_sessions : unit -> int Lwt.t
  val number_of_persistent_tables : unit -> int
  val number_of_persistent_table_elements : unit -> (string * int) list Lwt.t
  val get_global_table :
    sp:Eliom_sessions.server_params -> Eliom_common.tables
  val get_session_service_table :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    unit -> Eliom_common.tables Pervasives.ref
  val get_session_service_table_if_exists :
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    unit -> Eliom_common.tables Pervasives.ref
  val get_sitedata : sp:Eliom_sessions.server_params -> Eliom_common.sitedata
  val get_persistent_cookies :
    sp:Eliom_sessions.server_params -> string Ocsigen_lib.String_Table.t
  val get_data_cookies :
    sp:Eliom_sessions.server_params -> string Ocsigen_lib.String_Table.t
  val find_sitedata :
    string -> Eliom_sessions.server_params option -> Eliom_common.sitedata
  val set_site_handler :
    Eliom_common.sitedata ->
    (Eliom_sessions.server_params -> exn -> Ocsigen_http_frame.result Lwt.t) ->
    unit
  val get_previous_extension_error_code :
    sp:Eliom_sessions.server_params -> int
  val sp_of_esp : Eliom_common.server_params -> Eliom_sessions.server_params
  val esp_of_sp : Eliom_sessions.server_params -> Eliom_common.server_params
  val get_si : sp:Eliom_sessions.server_params -> Eliom_common.sess_info
end