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
