module WEBrick

module HTTPAuth
  class BasicAuth
    @config: Hash[Symbol, untyped]

    include Authenticator

    AuthScheme: String

    def self.make_passwd: (String? realm, String? user, String? pass) -> String

    attr_reader realm: String?

    attr_reader userdb: UserDB

    attr_reader logger: Log

    def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void

    def authenticate: (HTTPRequest req, HTTPResponse res) -> void

    def challenge: (HTTPRequest req, HTTPResponse res) -> bot
  end

  class ProxyBasicAuth < BasicAuth
    include ProxyAuthenticator
  end
end

end