sig
  val generate_configuration_directory :
    debug_level:int ->
    config_path:string ->
    [ `Client_from_url of string
    | `Full of
        [ `Default_database | `User_set_database of string ] *
        [ `TLS_create_self_signed
        | `TLS_disable
        | `TLS_use of string * string ] * [ `Port of int ] *
        [ `Tokens of string list ] ] ->
    (unit,
     [> `Failure of string
      | `IO of [> `Write_file_exn of Unix_io.IO.path * exn ]
      | `Shell of
          string *
          [> `Exited of int
           | `Exn of exn
           | `Signaled of int
           | `Stopped of int ]
      | `System of
          [> `Make_directory of string ] *
          [> `Exn of exn | `Wrong_access_rights of int ] ])
    Unix_io.Deferred_result.t
end