module WEBrick
class ServerError < StandardError end class SimpleServer def self.start: [T] () { () -> T } -> T end class Daemon def self.start: () -> void | [T] () { () -> T } -> T end class GenericServer @shutdown_pipe: [IO, IO]? attr_reader status: :Stop | :Running | :Shutdown attr_reader config: Hash[Symbol, untyped] attr_reader logger: BasicLog attr_reader tokens: Thread::SizedQueue attr_reader listeners: Array[TCPServer| OpenSSL::SSL::SSLServer] def initialize: (?Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void def []: (Symbol key) -> untyped def listen: (String address, Integer port) -> void def start: () ?{ (TCPSocket) -> void } -> void def stop: () -> void def shutdown: () -> void def run: (TCPSocket sock) -> void private def accept_client: (TCPServer svr) -> TCPSocket? def start_thread: (TCPSocket sock) ?{ (TCPSocket) -> void } -> Thread def call_callback: (Symbol callback_name, *untyped args) -> untyped def setup_shutdown_pipe: () -> [IO, IO] def cleanup_shutdown_pipe: ([IO, IO]? shutdown_pipe) -> void def alarm_shutdown_pipe: [T] () { (IO) -> T } -> T? def cleanup_listener: () -> void end
end