# typed: true

# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `rspec-wait` gem.
# Please instead update this file by running `bin/tapioca gem rspec-wait`.

module RSpec
  extend ::RSpec::Support::Warnings
  extend ::RSpec::Core::Warnings

  class << self
    def clear_examples; end
    def configuration; end
    def configuration=(_arg0); end
    def configure; end
    def const_missing(name); end
    def context(*args, &example_group_block); end
    def current_example; end
    def current_example=(example); end
    def current_scope; end
    def current_scope=(scope); end
    def describe(*args, &example_group_block); end
    def example_group(*args, &example_group_block); end
    def fcontext(*args, &example_group_block); end
    def fdescribe(*args, &example_group_block); end
    def reset; end
    def shared_context(name, *args, &block); end
    def shared_examples(name, *args, &block); end
    def shared_examples_for(name, *args, &block); end
    def world; end
    def world=(_arg0); end
    def xcontext(*args, &example_group_block); end
    def xdescribe(*args, &example_group_block); end
  end
end

RSpec::MODULES_TO_AUTOLOAD = T.let(T.unsafe(nil), Hash)
RSpec::SharedContext = RSpec::Core::SharedContext

module RSpec::Wait
  private

  def wait(timeout = T.unsafe(nil), options = T.unsafe(nil)); end
  def wait_for(value = T.unsafe(nil), &block); end
  def with_wait(options); end

  class << self
    def wait(timeout = T.unsafe(nil), options = T.unsafe(nil)); end
    def wait_for(value = T.unsafe(nil), &block); end
    def with_wait(options); end
  end
end

class RSpec::Wait::Error < ::StandardError; end

module RSpec::Wait::Handler
  def handle_matcher(target, *args, &block); end
end

class RSpec::Wait::NegativeHandler < ::RSpec::Expectations::NegativeExpectationHandler
  extend ::RSpec::Wait::Handler
end

class RSpec::Wait::PositiveHandler < ::RSpec::Expectations::PositiveExpectationHandler
  extend ::RSpec::Wait::Handler
end

class RSpec::Wait::Proxy
  def initialize(options); end

  def for(value = T.unsafe(nil), &block); end
end

class RSpec::Wait::Target < ::RSpec::Expectations::ExpectationTarget
  def initialize(target, options); end

  def not_to(matcher = T.unsafe(nil), message = T.unsafe(nil), &block); end
  def to(matcher = T.unsafe(nil), message = T.unsafe(nil), &block); end
  def to_not(matcher = T.unsafe(nil), message = T.unsafe(nil), &block); end

  private

  def with_wait; end

  class << self
    def for(value, block, options = T.unsafe(nil)); end
  end
end

module RSpec::Wait::Target::UndefinedValue; end
class RSpec::Wait::TimeoutError < ::RSpec::Wait::Error; end
