module WEBrick

module HTTPAuth
  class Htpasswd
    @path: String

    @mtime: Time

    @passwd: Hash[String, String]

    @auth_type: String

    @password_hash: (:crypt | :bcrypt)

    include UserDB

    def initialize: (String path, ?password_hash: (:crypt | :bcrypt)?) -> 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) -> void

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

    def each: () { ([String, String]) -> void } -> void
  end
end

end