sig
  type t
  val log : Ketrew.Authentication.t -> Ketrew_pure.Internal_pervasives.Log.t
  val load :
    [ `Inline of string * string
    | `Path of Ketrew_pure.Internal_pervasives.String.t ] list ->
    (Ketrew.Authentication.t,
     [> `IO of [> `Read_file_exn of Unix_io.IO.path * exn ] ])
    Unix_io.Deferred_result.t
  val reload :
    Ketrew.Authentication.t ->
    (Ketrew.Authentication.t,
     [> `IO of [> `Read_file_exn of Unix_io.IO.path * exn ] ])
    Unix_io.Deferred_result.t
  type capabilities =
      [ `Browse_gui
      | `Kill_targets
      | `Play_with_process_holder
      | `Query_targets
      | `Restart_targets
      | `See_server_status
      | `See_targets
      | `Submit_targets ]
  val can :
    Ketrew.Authentication.t ->
    read_only_mode:bool ->
    ?token:string -> Ketrew.Authentication.capabilities -> bool
end