module WEBrick
  module Config
    SSL: Hash[Symbol, untyped]
  end

  module Utils
    def self?.create_self_signed_cert: (untyped bits, untyped cn, untyped comment) -> ::Array[untyped]
  end

  class GenericServer
    @ssl_context: OpenSSL::SSL::SSLContext?

    def ssl_context: () -> OpenSSL::SSL::SSLContext?

    def setup_ssl_context: (Hash[Symbol, untyped] config) -> OpenSSL::SSL::SSLContext

    def ssl_servername_callback: (untyped sslsocket, ?untyped? hostname) -> untyped
  end
end
