# sig/uringmachine.rbs

class UringMachine
  def fiber_map: () -> untyped
  def join: () -> untyped
  def notify_done_listeners: () -> untyped
  def resolve: () -> untyped
  def run_block_in_fiber: () -> untyped
  def spin: () -> untyped
  def spin_actor: () -> untyped
  def spin_thread_actor: () -> untyped
end


# sig/uringmachine/actor.rbs

class UringMachine::Actor < UringMachine::Fiber
  def call: () -> untyped
  def cast: () -> untyped
  def process_message: () -> untyped
  def run: () -> untyped
end


# sig/uringmachine/dns_resolver.rbs

class UringMachine::DNSResolver
  def do_resolve: () -> untyped
  def get_nameservers: () -> untyped
  def handle_requests_loop: () -> untyped
  def initialize: () -> void
  def msg_type: () -> untyped
  def prepare_request_packet: () -> untyped
  def prepare_socket: () -> untyped
  def resolve: () -> untyped
  def socket_fd: () -> untyped
end


# sig/uringmachine.rbs

module UringMachine::FiberExtensions
  def add_done_listener: () -> untyped
  def done?: () -> untyped
  def mailbox: () -> untyped
  def mark_as_done: () -> untyped
  def set_result: () -> untyped
end


# sig/uringmachine.rbs

module UringMachine::ThreadExtensions
  def machine: () -> untyped
end
