module WEBrick
  module HTTPAuth
    class Htdigest
      @path: String

      @mtime: Time

      @digest: Hash[String, Hash[String, String]]

      @mutex: Thread::Mutex

      @auth_type: String

      include UserDB

      def initialize: (String path) -> void

      def reload: () -> void

      def flush: (?String? output) -> void

      def get_passwd: (String realm, String user, bool reload_db) -> String?

      def set_passwd: (String realm, String user, String pass) -> String

      def delete_passwd: (String realm, String user) -> String?

      def each: () { (String user, String realm, String password_hash) -> void } -> void
    end
  end
end
