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

# typed: true

module RuboCop; end
module RuboCop::Cop; end
module RuboCop::Cop::Layout; end

class RuboCop::Cop::Layout::ExtraSpacing < ::RuboCop::Cop::Base
  include ::RuboCop::Cop::PrecedingFollowingAlignment
  include ::RuboCop::Cop::RangeHelp
  extend ::RuboCop::Cop::AutoCorrector

  def on_new_investigation; end

  private

  def align_column(asgn_token); end
  def align_equal_sign(corrector, token, align_to); end
  def align_equal_signs(range, corrector); end
  def aligned_locations(locs); end
  def aligned_tok?(token); end
  def all_relevant_assignment_lines(line_number); end
  def allow_for_trailing_comments?; end
  def check_assignment(token); end
  def check_other(token1, token2, ast); end
  def check_tokens(ast, token1, token2); end
  def extra_space_range(token1, token2); end
  def force_equal_sign_alignment?; end
  def ignored_range?(ast, start_pos); end
  def ignored_ranges(ast); end

  class << self
    def autocorrect_incompatible_with; end
  end
end

RuboCop::Cop::Layout::ExtraSpacing::MSG_UNALIGNED_ASGN = T.let(T.unsafe(nil), String)
RuboCop::Cop::Layout::ExtraSpacing::MSG_UNNECESSARY = T.let(T.unsafe(nil), String)
module RuboCop::Cop::RSpec; end

class RuboCop::Cop::RSpec::AlignLeftLetBrace < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def on_new_investigation; end

  private

  def token_aligner; end

  class << self
    def autocorrect_incompatible_with; end
  end
end

RuboCop::Cop::RSpec::AlignLeftLetBrace::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::AlignRightLetBrace < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def on_new_investigation; end

  private

  def token_aligner; end

  class << self
    def autocorrect_incompatible_with; end
  end
end

RuboCop::Cop::RSpec::AlignRightLetBrace::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::AnyInstance < ::RuboCop::Cop::RSpec::Base
  def on_send(node); end
end

RuboCop::Cop::RSpec::AnyInstance::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::AnyInstance::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::AroundBlock < ::RuboCop::Cop::RSpec::Base
  def find_arg_usage(param0); end
  def hook(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def add_no_arg_offense(node); end
  def check_for_unused_proxy(block, proxy); end
end

RuboCop::Cop::RSpec::AroundBlock::MSG_NO_ARG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::AroundBlock::MSG_UNUSED_ARG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::Base < ::RuboCop::Cop::Base
  include ::RuboCop::RSpec::Language
  extend ::RuboCop::RSpec::Language::NodePattern

  def on_new_investigation; end

  class << self
    def inherited(subclass); end
  end
end

class RuboCop::Cop::RSpec::Be < ::RuboCop::Cop::RSpec::Base
  def be_without_args(param0 = T.unsafe(nil)); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::Be::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::BeEql < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def eql_type_with_identity(param0 = T.unsafe(nil)); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::BeEql::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::BeEql::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::BeforeAfterAll < ::RuboCop::Cop::RSpec::Base
  def before_or_after_all(param0 = T.unsafe(nil)); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::BeforeAfterAll::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::BeforeAfterAll::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
module RuboCop::Cop::RSpec::Capybara; end

class RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def as_is_matcher(param0 = T.unsafe(nil)); end
  def expectation_set_on_current_path(param0 = T.unsafe(nil)); end
  def on_send(node); end
  def regexp_str_matcher(param0 = T.unsafe(nil)); end

  private

  def add_ignore_query_options(corrector, node); end
  def autocorrect(corrector, node); end
  def convert_regexp_str_to_literal(corrector, matcher_node, regexp_str); end
  def rewrite_expectation(corrector, node, to_symbol, matcher_node); end
end

RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::Capybara::FeatureMethods < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def capybara_speak(param0 = T.unsafe(nil)); end
  def feature_method(param0 = T.unsafe(nil)); end
  def message(range); end
  def on_block(node); end
  def spec?(param0 = T.unsafe(nil)); end

  private

  def enabled?(method_name); end
  def enabled_methods; end
  def inside_spec?(node); end
  def root_node?(node); end
  def root_with_siblings?(node); end
end

RuboCop::Cop::RSpec::Capybara::FeatureMethods::MAP = T.let(T.unsafe(nil), Hash)
RuboCop::Cop::RSpec::Capybara::FeatureMethods::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::Capybara::VisibilityMatcher < ::RuboCop::Cop::RSpec::Base
  def on_send(node); end
  def visible_false?(param0 = T.unsafe(nil)); end
  def visible_true?(param0 = T.unsafe(nil)); end

  private

  def capybara_matcher?(method_name); end
end

RuboCop::Cop::RSpec::Capybara::VisibilityMatcher::CAPYBARA_MATCHER_METHODS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::RSpec::Capybara::VisibilityMatcher::MSG_FALSE = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::Capybara::VisibilityMatcher::MSG_TRUE = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::Capybara::VisibilityMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

module RuboCop::Cop::RSpec::CommentsHelp
  include ::RuboCop::Cop::RSpec::FinalEndLocation

  def begin_pos_with_comment(node); end
  def buffer; end
  def end_line_position(node); end
  def source_range_with_comment(node); end
  def start_line_position(node); end
end

class RuboCop::Cop::RSpec::ContextMethod < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def context_method(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def method_name?(description); end
end

RuboCop::Cop::RSpec::ContextMethod::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ContextWording < ::RuboCop::Cop::RSpec::Base
  def context_wording(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def bad_prefix?(description); end
  def joined_prefixes; end
  def prefix_regex; end
  def prefixes; end
end

RuboCop::Cop::RSpec::ContextWording::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::DescribeClass < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def example_group_with_ignored_metadata?(param0 = T.unsafe(nil)); end
  def not_a_const_described(param0 = T.unsafe(nil)); end
  def on_top_level_group(node); end
  def sym_pair(param0 = T.unsafe(nil)); end

  private

  def ignored_metadata; end
  def ignored_metadata?(node); end
  def string_constant?(described); end
end

RuboCop::Cop::RSpec::DescribeClass::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::DescribeMethod < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def on_top_level_group(node); end
  def second_argument(param0 = T.unsafe(nil)); end
end

RuboCop::Cop::RSpec::DescribeMethod::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::DescribeSymbol < ::RuboCop::Cop::RSpec::Base
  def describe_symbol?(param0 = T.unsafe(nil)); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::DescribeSymbol::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::DescribeSymbol::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::DescribedClass < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def common_instance_exec_closure?(param0 = T.unsafe(nil)); end
  def contains_described_class?(param0); end
  def described_constant(param0 = T.unsafe(nil)); end
  def on_block(node); end
  def rspec_block?(param0 = T.unsafe(nil)); end
  def scope_changing_syntax?(param0 = T.unsafe(nil)); end

  private

  def autocorrect(corrector, match); end
  def collapse_namespace(namespace, const); end
  def const_name(node); end
  def find_usage(node, &block); end
  def full_const_name(node); end
  def message(offense); end
  def namespace(node); end
  def offensive?(node); end
  def offensive_described_class?(node); end
  def scope_change?(node); end
  def skip_blocks?; end
  def skippable_block?(node); end
end

RuboCop::Cop::RSpec::DescribedClass::DESCRIBED_CLASS = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::DescribedClass::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::DescribedClassModuleWrapping < ::RuboCop::Cop::RSpec::Base
  def find_rspec_blocks(param0); end
  def on_module(node); end
end

RuboCop::Cop::RSpec::DescribedClassModuleWrapping::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::Dialect < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::MethodPreference
  extend ::RuboCop::Cop::AutoCorrector

  def on_send(node); end
  def rspec_method?(param0 = T.unsafe(nil)); end
end

RuboCop::Cop::RSpec::Dialect::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyExampleGroup < ::RuboCop::Cop::RSpec::Base
  def example_group_body(param0 = T.unsafe(nil)); end
  def example_or_group_or_include?(param0 = T.unsafe(nil)); end
  def examples?(param0 = T.unsafe(nil)); end
  def examples_directly_or_in_block?(param0 = T.unsafe(nil)); end
  def examples_inside_block?(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def conditionals_with_examples?(body); end
  def examples_in_branches?(if_node); end
  def offensive?(body); end
end

RuboCop::Cop::RSpec::EmptyExampleGroup::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyHook < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RangeHelp
  extend ::RuboCop::Cop::AutoCorrector

  def empty_hook?(param0 = T.unsafe(nil)); end
  def on_block(node); end
end

RuboCop::Cop::RSpec::EmptyHook::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyLineAfterExample < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RangeHelp
  include ::RuboCop::Cop::RSpec::EmptyLineSeparation
  extend ::RuboCop::Cop::AutoCorrector

  def allow_consecutive_one_liners?; end
  def allowed_one_liner?(node); end
  def consecutive_one_liner?(node); end
  def next_one_line_example?(node); end
  def next_sibling(node); end
  def on_block(node); end
end

RuboCop::Cop::RSpec::EmptyLineAfterExample::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyLineAfterExampleGroup < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RangeHelp
  include ::RuboCop::Cop::RSpec::EmptyLineSeparation
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end
end

RuboCop::Cop::RSpec::EmptyLineAfterExampleGroup::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyLineAfterFinalLet < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RangeHelp
  include ::RuboCop::Cop::RSpec::EmptyLineSeparation
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end
end

RuboCop::Cop::RSpec::EmptyLineAfterFinalLet::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyLineAfterHook < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RangeHelp
  include ::RuboCop::Cop::RSpec::EmptyLineSeparation
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end
end

RuboCop::Cop::RSpec::EmptyLineAfterHook::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::EmptyLineAfterSubject < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RangeHelp
  include ::RuboCop::Cop::RSpec::EmptyLineSeparation
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end

  private

  def in_spec_block?(node); end
end

RuboCop::Cop::RSpec::EmptyLineAfterSubject::MSG = T.let(T.unsafe(nil), String)

module RuboCop::Cop::RSpec::EmptyLineSeparation
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RangeHelp

  def last_child?(node); end
  def missing_separating_line(node); end
  def missing_separating_line_offense(node); end
  def offending_loc(last_line); end
end

class RuboCop::Cop::RSpec::ExampleLength < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::CodeLength

  def on_block(node); end

  private

  def cop_label; end
end

RuboCop::Cop::RSpec::ExampleLength::LABEL = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ExampleWithoutDescription < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle

  def example_description(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def check_example_without_description(node); end
  def disallow_empty_description?(node); end
end

RuboCop::Cop::RSpec::ExampleWithoutDescription::MSG_ADD_DESCRIPTION = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ExampleWithoutDescription::MSG_DEFAULT_ARGUMENT = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ExampleWording < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def it_description(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def add_wording_offense(node, message); end
  def custom_transform; end
  def docstring(node); end
  def ignored_words; end
  def replacement_text(node); end
  def text(node); end
end

RuboCop::Cop::RSpec::ExampleWording::IT_PREFIX = T.let(T.unsafe(nil), Regexp)
RuboCop::Cop::RSpec::ExampleWording::MSG_IT = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ExampleWording::MSG_SHOULD = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ExampleWording::SHOULD_PREFIX = T.let(T.unsafe(nil), Regexp)

class RuboCop::Cop::RSpec::ExcessiveDocstringSpacing < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def example_description(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def add_whitespace_offense(node, text); end
  def docstring(node); end
  def excessive_whitespace?(text); end
  def strip_excessive_whitespace(text); end
  def text(node); end
end

RuboCop::Cop::RSpec::ExcessiveDocstringSpacing::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ExpectActual < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def expect_literal(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def complex_literal?(node); end
  def literal?(node); end
  def simple_literal?(node); end
  def swap(corrector, actual, expected); end
end

RuboCop::Cop::RSpec::ExpectActual::COMPLEX_LITERALS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::RSpec::ExpectActual::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ExpectActual::SIMPLE_LITERALS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::RSpec::ExpectActual::SUPPORTED_MATCHERS = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::ExpectChange < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def expect_change_with_arguments(param0 = T.unsafe(nil)); end
  def expect_change_with_block(param0 = T.unsafe(nil)); end
  def on_block(node); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::ExpectChange::MSG_BLOCK = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ExpectChange::MSG_CALL = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ExpectChange::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::ExpectInHook < ::RuboCop::Cop::RSpec::Base
  def expectation(param0); end
  def on_block(node); end

  private

  def message(expect, hook); end
end

RuboCop::Cop::RSpec::ExpectInHook::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ExpectOutput < ::RuboCop::Cop::RSpec::Base
  def on_gvasgn(node); end

  private

  def inside_example_scope?(node); end
end

RuboCop::Cop::RSpec::ExpectOutput::MSG = T.let(T.unsafe(nil), String)

module RuboCop::Cop::RSpec::ExplicitHelper
  include ::RuboCop::RSpec::Language
  extend ::RuboCop::AST::NodePattern::Macros

  def predicate_matcher?(param0 = T.unsafe(nil)); end
  def predicate_matcher_block?(param0 = T.unsafe(nil)); end

  private

  def allowed_explicit_matchers; end
  def check_explicit(node); end
  def corrector_explicit(corrector, to_node, actual, matcher, block_child); end
  def message_explicit(matcher); end
  def move_predicate(corrector, actual, matcher, block_child); end
  def predicate_matcher_name?(name); end
  def replacement_matcher(node); end
  def to_predicate_method(matcher); end
end

RuboCop::Cop::RSpec::ExplicitHelper::BUILT_IN_MATCHERS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::RSpec::ExplicitHelper::MSG_EXPLICIT = T.let(T.unsafe(nil), String)
module RuboCop::Cop::RSpec::FactoryBot; end

class RuboCop::Cop::RSpec::FactoryBot::AttributeDefinedStatically < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def association?(param0 = T.unsafe(nil)); end
  def factory_attributes(param0 = T.unsafe(nil)); end
  def on_block(node); end
  def value_matcher(param0 = T.unsafe(nil)); end

  private

  def attribute_defining_method?(method_name); end
  def autocorrect(corrector, node); end
  def autocorrect_replacing_parens(corrector, node); end
  def autocorrect_without_parens(corrector, node); end
  def braces(node); end
  def offensive_receiver?(receiver, node); end
  def proc?(attribute); end
  def receiver_matches_first_block_argument?(receiver, node); end
  def reserved_method?(method_name); end
  def value_hash_without_braces?(node); end
end

RuboCop::Cop::RSpec::FactoryBot::AttributeDefinedStatically::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::FactoryBot::CreateList < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def factory_call(param0 = T.unsafe(nil)); end
  def factory_list_call(param0 = T.unsafe(nil)); end
  def n_times_block_without_arg?(param0 = T.unsafe(nil)); end
  def on_block(node); end
  def on_send(node); end

  private

  def contains_only_factory?(node); end
end

module RuboCop::Cop::RSpec::FactoryBot::CreateList::Corrector
  private

  def build_options_string(options); end
  def format_method_call(node, method, arguments); end
  def format_receiver(receiver); end
end

class RuboCop::Cop::RSpec::FactoryBot::CreateList::CreateListCorrector
  include ::RuboCop::Cop::RSpec::FactoryBot::CreateList::Corrector

  def initialize(node); end

  def call(corrector); end

  private

  def build_arguments(node, count); end
  def call_replacement(node); end
  def call_with_block_replacement(node); end
  def format_block(node); end
  def format_multiline_block(node); end
  def format_singeline_block(node); end
  def node; end
end

RuboCop::Cop::RSpec::FactoryBot::CreateList::MSG_CREATE_LIST = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::FactoryBot::CreateList::MSG_N_TIMES = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::FactoryBot::CreateList::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::FactoryBot::CreateList::TimesCorrector
  include ::RuboCop::Cop::RSpec::FactoryBot::CreateList::Corrector

  def initialize(node); end

  def call(corrector); end

  private

  def generate_n_times_block(node); end
  def node; end
end

class RuboCop::Cop::RSpec::FactoryBot::FactoryClassName < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def class_name(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def allowed?(const_name); end
end

RuboCop::Cop::RSpec::FactoryBot::FactoryClassName::ALLOWED_CONSTANTS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::RSpec::FactoryBot::FactoryClassName::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::FactoryBot::FactoryClassName::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::FilePath < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def example_group(param0 = T.unsafe(nil)); end
  def on_top_level_example_group(node); end
  def routing_metadata?(param0); end

  private

  def camel_to_snake_case(string); end
  def custom_transform; end
  def ensure_correct_file_path(send_node, example_group, arguments); end
  def expected_path(constant); end
  def filename_ends_with?(pattern); end
  def ignore_methods?; end
  def name_pattern(method_name); end
  def pattern_for(example_group, method_name); end
  def pattern_for_spec_suffix_only?; end
  def relevant_rubocop_rspec_file?(_file); end
  def routing_spec?(args); end
  def spec_suffix_only?; end
end

RuboCop::Cop::RSpec::FilePath::MSG = T.let(T.unsafe(nil), String)

module RuboCop::Cop::RSpec::FinalEndLocation
  def final_end_location(start_node); end
end

class RuboCop::Cop::RSpec::Focus < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RangeHelp
  extend ::RuboCop::Cop::AutoCorrector

  def focusable_selector?(param0 = T.unsafe(nil)); end
  def focused_block?(param0 = T.unsafe(nil)); end
  def metadata(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def correct_send(corrector, focus); end
  def focus_metadata(node, &block); end
  def with_surrounding(focus); end
end

RuboCop::Cop::RSpec::Focus::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::HookArgument < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end
  def scoped_hook(param0 = T.unsafe(nil)); end
  def unscoped_hook(param0 = T.unsafe(nil)); end

  private

  def argument_range(send_node); end
  def check_implicit(method_send); end
  def explicit_message(scope); end
  def hook(node, &block); end
  def implicit_style?; end
end

RuboCop::Cop::RSpec::HookArgument::EXPLICIT_MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::HookArgument::IMPLICIT_MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::HooksBeforeExamples < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def example_or_group?(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def autocorrect(corrector, node, first_example); end
  def check_hooks(node); end
  def find_first_example(node); end
  def multiline_block?(block); end
end

RuboCop::Cop::RSpec::HooksBeforeExamples::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::IdenticalEqualityAssertion < ::RuboCop::Cop::RSpec::Base
  def equality_check?(param0 = T.unsafe(nil)); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::IdenticalEqualityAssertion::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::IdenticalEqualityAssertion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::ImplicitBlockExpectation < ::RuboCop::Cop::RSpec::Base
  def implicit_expect(param0 = T.unsafe(nil)); end
  def lambda?(param0 = T.unsafe(nil)); end
  def lambda_subject?(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def find_subject(block_node); end
  def multi_statement_example_group?(node); end
  def nearest_subject(node); end
end

RuboCop::Cop::RSpec::ImplicitBlockExpectation::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ImplicitBlockExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::ImplicitExpect < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def implicit_expect(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def is_expected_range(source_map); end
  def offending_expect(node); end
  def offense_message(offending_source); end
  def replacement_source(offending_source); end
end

RuboCop::Cop::RSpec::ImplicitExpect::ENFORCED_REPLACEMENTS = T.let(T.unsafe(nil), Hash)
RuboCop::Cop::RSpec::ImplicitExpect::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ImplicitSubject < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def implicit_subject?(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def allowed_by_style?(example); end
  def autocorrect(corrector, node); end
  def valid_usage?(node); end
end

RuboCop::Cop::RSpec::ImplicitSubject::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ImplicitSubject::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

module RuboCop::Cop::RSpec::InflectedHelper
  include ::RuboCop::RSpec::Language
  extend ::RuboCop::AST::NodePattern::Macros

  def be_bool?(param0 = T.unsafe(nil)); end
  def be_boolthy?(param0 = T.unsafe(nil)); end
  def predicate_in_actual?(param0 = T.unsafe(nil)); end

  private

  def boolean_matcher?(node); end
  def check_inflected(node); end
  def message_inflected(predicate); end
  def predicate?(sym); end
  def remove_predicate(corrector, predicate); end
  def rewrite_matcher(corrector, predicate, matcher); end
  def to_predicate_matcher(name); end
  def true?(to_symbol, matcher); end
end

RuboCop::Cop::RSpec::InflectedHelper::MSG_INFLECTED = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::InstanceSpy < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def have_received_usage(param0); end
  def null_double(param0); end
  def on_block(node); end

  private

  def autocorrect(corrector, node); end
end

RuboCop::Cop::RSpec::InstanceSpy::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::InstanceVariable < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def custom_matcher?(param0 = T.unsafe(nil)); end
  def dynamic_class?(param0 = T.unsafe(nil)); end
  def ivar_assigned?(param0, param1); end
  def ivar_usage(param0); end
  def on_top_level_group(node); end

  private

  def assignment_only?; end
  def valid_usage?(node); end
end

RuboCop::Cop::RSpec::InstanceVariable::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ItBehavesLike < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def example_inclusion_offense(param0 = T.unsafe(nil), param1); end
  def on_send(node); end

  private

  def message(_node); end
end

RuboCop::Cop::RSpec::ItBehavesLike::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ItBehavesLike::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::IteratedExpectation < ::RuboCop::Cop::RSpec::Base
  def each?(param0 = T.unsafe(nil)); end
  def expectation?(param0 = T.unsafe(nil), param1); end
  def on_block(node); end

  private

  def only_expectations?(body, arg); end
  def single_expectation?(body, arg); end
end

RuboCop::Cop::RSpec::IteratedExpectation::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::LeadingSubject < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def check_previous_nodes(node); end
  def on_block(node); end

  private

  def autocorrect(corrector, node, sibling); end
  def in_spec_block?(node); end
  def offending?(node); end
  def offending_node(node); end
  def parent(node); end
end

RuboCop::Cop::RSpec::LeadingSubject::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::LeakyConstantDeclaration < ::RuboCop::Cop::RSpec::Base
  def on_casgn(node); end
  def on_class(node); end
  def on_module(node); end

  private

  def inside_describe_block?(node); end
end

RuboCop::Cop::RSpec::LeakyConstantDeclaration::MSG_CLASS = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::LeakyConstantDeclaration::MSG_CONST = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::LeakyConstantDeclaration::MSG_MODULE = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::LetBeforeExamples < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def example_or_group?(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def autocorrect(corrector, node, first_example); end
  def check_let_declarations(node); end
  def find_first_example(node); end
  def multiline_block?(block); end
end

RuboCop::Cop::RSpec::LetBeforeExamples::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::LetSetup < ::RuboCop::Cop::RSpec::Base
  def example_or_shared_group_or_including?(param0 = T.unsafe(nil)); end
  def let_bang(param0 = T.unsafe(nil)); end
  def method_called?(param0, param1); end
  def on_block(node); end

  private

  def child_let_bang(node, &block); end
  def unused_let_bang(node); end
end

RuboCop::Cop::RSpec::LetSetup::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::MessageChain < ::RuboCop::Cop::RSpec::Base
  def on_send(node); end
end

RuboCop::Cop::RSpec::MessageChain::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::MessageChain::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::MessageExpectation < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle

  def message_expectation(param0 = T.unsafe(nil)); end
  def on_send(node); end
  def receive_message?(param0); end

  private

  def preferred_style?(expectation); end
end

RuboCop::Cop::RSpec::MessageExpectation::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::MessageExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
RuboCop::Cop::RSpec::MessageExpectation::SUPPORTED_STYLES = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::MessageSpies < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle

  def message_expectation(param0 = T.unsafe(nil)); end
  def on_send(node); end
  def receive_message(param0); end

  private

  def error_message(receiver); end
  def preferred_style?(expectation); end
  def receive_message_matcher(node); end
end

RuboCop::Cop::RSpec::MessageSpies::MSG_HAVE_RECEIVED = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::MessageSpies::MSG_RECEIVE = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::MessageSpies::SUPPORTED_STYLES = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::MissingExampleGroupArgument < ::RuboCop::Cop::RSpec::Base
  def on_block(node); end
end

RuboCop::Cop::RSpec::MissingExampleGroupArgument::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::MultipleDescribes < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def on_top_level_group(node); end
end

RuboCop::Cop::RSpec::MultipleDescribes::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::MultipleExpectations < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableMax

  def aggregate_failures?(param0 = T.unsafe(nil), param1); end
  def aggregate_failures_block?(param0 = T.unsafe(nil)); end
  def expect?(param0 = T.unsafe(nil)); end
  def on_block(node); end

  private

  def example_with_aggregate_failures?(example_node); end
  def find_aggregate_failures(example_node); end
  def find_expectation(node, &block); end
  def flag_example(node, expectation_count:); end
  def max_expectations; end
end

RuboCop::Cop::RSpec::MultipleExpectations::ANYTHING = T.let(T.unsafe(nil), Proc)
RuboCop::Cop::RSpec::MultipleExpectations::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::MultipleExpectations::TRUE = T.let(T.unsafe(nil), Proc)

class RuboCop::Cop::RSpec::MultipleMemoizedHelpers < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableMax
  include ::RuboCop::Cop::RSpec::Variable

  def on_block(node); end
  def on_new_investigation; end

  private

  def all_helpers(node); end
  def allow_subject?; end
  def example_group_memoized_helpers; end
  def helpers(node); end
  def max; end
  def variable_nodes(node); end
end

RuboCop::Cop::RSpec::MultipleMemoizedHelpers::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::MultipleSubjects < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RangeHelp
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end

  private

  def autocorrect(corrector, subject); end
  def named_subject?(node); end
  def remove_autocorrect(corrector, node); end
  def rename_autocorrect(corrector, node); end
end

RuboCop::Cop::RSpec::MultipleSubjects::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::NamedSubject < ::RuboCop::Cop::RSpec::Base
  def example_or_hook_block?(param0 = T.unsafe(nil)); end
  def ignored_shared_example?(node); end
  def on_block(node); end
  def shared_example?(param0 = T.unsafe(nil)); end
  def subject_usage(param0); end
end

RuboCop::Cop::RSpec::NamedSubject::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::NestedGroups < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableMax
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def on_top_level_group(node); end

  private

  def find_nested_example_groups(node, nesting: T.unsafe(nil), &block); end
  def max_nesting; end
  def max_nesting_config; end
  def message(nesting); end
end

RuboCop::Cop::RSpec::NestedGroups::DEPRECATED_MAX_KEY = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::NestedGroups::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::NestedGroups::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::NotToNot < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def not_to_not_offense(param0 = T.unsafe(nil), param1); end
  def on_send(node); end

  private

  def message(_node); end
end

RuboCop::Cop::RSpec::NotToNot::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::NotToNot::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::OverwritingSetup < ::RuboCop::Cop::RSpec::Base
  def first_argument_name(param0 = T.unsafe(nil)); end
  def on_block(node); end
  def setup?(param0 = T.unsafe(nil)); end

  private

  def common_setup?(node); end
  def find_duplicates(node); end
end

RuboCop::Cop::RSpec::OverwritingSetup::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::Pending < ::RuboCop::Cop::RSpec::Base
  def on_send(node); end
  def pending_block?(param0 = T.unsafe(nil)); end
  def skip_or_pending?(param0 = T.unsafe(nil)); end
  def skippable?(param0 = T.unsafe(nil)); end
  def skipped_in_metadata?(param0 = T.unsafe(nil)); end

  private

  def skipped?(node); end
end

RuboCop::Cop::RSpec::Pending::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::PredicateMatcher < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  include ::RuboCop::Cop::RSpec::InflectedHelper
  include ::RuboCop::Cop::RSpec::ExplicitHelper
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end
  def on_send(node); end

  private

  def args_loc(send_node); end
  def block_loc(send_node); end
end

module RuboCop::Cop::RSpec::Rails; end

class RuboCop::Cop::RSpec::Rails::AvoidSetupHook < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end
  def setup_call(param0 = T.unsafe(nil)); end
end

RuboCop::Cop::RSpec::Rails::AvoidSetupHook::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ReceiveCounts < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def on_send(node); end
  def receive_counts(param0 = T.unsafe(nil)); end
  def stub?(param0); end

  private

  def autocorrect(corrector, node, range); end
  def matcher_for(method, count); end
  def message_for(node, source); end
  def range(node, offending_node); end
end

RuboCop::Cop::RSpec::ReceiveCounts::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ReceiveCounts::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::ReceiveNever < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def method_on_stub?(param0); end
  def on_send(node); end

  private

  def autocorrect(corrector, node); end
end

RuboCop::Cop::RSpec::ReceiveNever::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ReceiveNever::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::RepeatedDescription < ::RuboCop::Cop::RSpec::Base
  def on_block(node); end

  private

  def example_signature(example); end
  def repeated_descriptions(node); end
end

RuboCop::Cop::RSpec::RepeatedDescription::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::RepeatedExample < ::RuboCop::Cop::RSpec::Base
  def on_block(node); end

  private

  def example_signature(example); end
  def repeated_examples(node); end
end

RuboCop::Cop::RSpec::RepeatedExample::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::RepeatedExampleGroupBody < ::RuboCop::Cop::RSpec::Base
  def body(param0 = T.unsafe(nil)); end
  def const_arg(param0 = T.unsafe(nil)); end
  def metadata(param0 = T.unsafe(nil)); end
  def on_begin(node); end
  def several_example_groups?(param0 = T.unsafe(nil)); end
  def skip_or_pending?(param0 = T.unsafe(nil)); end

  private

  def add_repeated_lines(groups); end
  def message(group, repeats); end
  def repeated_group_bodies(node); end
  def signature_keys(group); end
end

RuboCop::Cop::RSpec::RepeatedExampleGroupBody::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::RepeatedExampleGroupDescription < ::RuboCop::Cop::RSpec::Base
  def doc_string_and_metadata(param0 = T.unsafe(nil)); end
  def empty_description?(param0 = T.unsafe(nil)); end
  def on_begin(node); end
  def several_example_groups?(param0 = T.unsafe(nil)); end
  def skip_or_pending?(param0 = T.unsafe(nil)); end

  private

  def add_repeated_lines(groups); end
  def message(group, repeats); end
  def repeated_group_descriptions(node); end
end

RuboCop::Cop::RSpec::RepeatedExampleGroupDescription::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::RepeatedIncludeExample < ::RuboCop::Cop::RSpec::Base
  def include_examples?(param0 = T.unsafe(nil)); end
  def on_begin(node); end
  def several_include_examples?(param0 = T.unsafe(nil)); end
  def shared_examples_name(param0 = T.unsafe(nil)); end

  private

  def add_repeated_lines(items); end
  def literal_include_examples?(node); end
  def message(item, repeats); end
  def repeated_include_examples(node); end
  def signature_keys(item); end
end

RuboCop::Cop::RSpec::RepeatedIncludeExample::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ReturnFromStub < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  extend ::RuboCop::Cop::AutoCorrector

  def and_return_value(param0); end
  def contains_stub?(param0); end
  def on_block(node); end
  def on_send(node); end
  def stub_with_block?(param0 = T.unsafe(nil)); end

  private

  def check_and_return_call(node); end
  def check_block_body(block); end
  def dynamic?(node); end
end

class RuboCop::Cop::RSpec::ReturnFromStub::AndReturnCallCorrector
  def initialize(node); end

  def call(corrector); end

  private

  def arg; end
  def hash_without_braces?; end
  def heredoc?; end
  def node; end
  def range; end
  def receiver; end
  def replacement; end
end

class RuboCop::Cop::RSpec::ReturnFromStub::BlockBodyCorrector
  def initialize(block); end

  def call(corrector); end

  private

  def block; end
  def body; end
  def heredoc?; end
  def node; end
end

RuboCop::Cop::RSpec::ReturnFromStub::BlockBodyCorrector::NULL_BLOCK_BODY = T.let(T.unsafe(nil), T.untyped)
RuboCop::Cop::RSpec::ReturnFromStub::MSG_AND_RETURN = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ReturnFromStub::MSG_BLOCK = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::ReturnFromStub::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::ScatteredLet < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def on_block(node); end

  private

  def check_let_declarations(body); end
  def find_first_let(node); end
end

RuboCop::Cop::RSpec::ScatteredLet::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::ScatteredSetup < ::RuboCop::Cop::RSpec::Base
  def lines_msg(numbers); end
  def on_block(node); end
  def repeated_hooks(node); end
end

RuboCop::Cop::RSpec::ScatteredSetup::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::SharedContext < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def context?(param0); end
  def examples?(param0); end
  def on_block(node); end
  def shared_context(param0 = T.unsafe(nil)); end
  def shared_example(param0 = T.unsafe(nil)); end

  private

  def context_with_only_examples(node); end
  def examples_with_only_context(node); end
end

RuboCop::Cop::RSpec::SharedContext::MSG_CONTEXT = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::SharedContext::MSG_EXAMPLES = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::SharedExamples < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def on_send(node); end
  def shared_examples(param0 = T.unsafe(nil)); end
end

class RuboCop::Cop::RSpec::SharedExamples::Checker
  def initialize(node); end

  def message; end
  def node; end
  def preferred_style; end

  private

  def symbol; end
  def wrap_with_single_quotes(string); end
end

RuboCop::Cop::RSpec::SharedExamples::Checker::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::SingleArgumentMessageChain < ::RuboCop::Cop::RSpec::Base
  extend ::RuboCop::Cop::AutoCorrector

  def message_chain(param0 = T.unsafe(nil)); end
  def on_send(node); end
  def single_key_hash?(param0 = T.unsafe(nil)); end

  private

  def autocorrect(corrector, node, method, arg); end
  def autocorrect_array_arg(corrector, arg); end
  def autocorrect_hash_arg(corrector, arg); end
  def key_to_arg(node); end
  def replacement(method); end
  def single_element_array?(node); end
  def valid_usage?(node); end
end

RuboCop::Cop::RSpec::SingleArgumentMessageChain::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::SingleArgumentMessageChain::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::StubbedMock < ::RuboCop::Cop::RSpec::Base
  def configured_response?(param0 = T.unsafe(nil)); end
  def expectation(param0 = T.unsafe(nil)); end
  def matcher_with_blockpass(param0 = T.unsafe(nil)); end
  def matcher_with_configured_response(param0 = T.unsafe(nil)); end
  def matcher_with_hash(param0 = T.unsafe(nil)); end
  def matcher_with_return_block(param0 = T.unsafe(nil)); end
  def message_expectation?(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def msg(method_name); end
  def on_expectation(expectation, method_name, matcher); end
  def replacement(method_name); end
end

RuboCop::Cop::RSpec::StubbedMock::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::SubjectDeclaration < ::RuboCop::Cop::RSpec::Base
  def offensive_subject_declaration?(param0 = T.unsafe(nil)); end
  def on_send(node); end

  private

  def message_for(offense); end
end

RuboCop::Cop::RSpec::SubjectDeclaration::MSG_LET = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::SubjectDeclaration::MSG_REDUNDANT = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::SubjectStub < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RSpec::TopLevelGroup

  def message_expectation?(param0 = T.unsafe(nil), param1); end
  def message_expectation_matcher?(param0); end
  def on_top_level_group(node); end
  def subject(param0 = T.unsafe(nil)); end

  private

  def find_all_explicit_subjects(node); end
  def find_subject_expectations(node, subject_names = T.unsafe(nil), &block); end
end

RuboCop::Cop::RSpec::SubjectStub::MSG = T.let(T.unsafe(nil), String)

module RuboCop::Cop::RSpec::TopLevelGroup
  extend ::RuboCop::AST::NodePattern::Macros

  def on_new_investigation; end
  def top_level_groups; end

  private

  def on_top_level_example_group(_node); end
  def on_top_level_group(_node); end
  def root_node; end
  def top_level_group?(node); end
  def top_level_nodes(node); end
end

class RuboCop::Cop::RSpec::UnspecifiedException < ::RuboCop::Cop::RSpec::Base
  def block_with_args?(node); end
  def empty_exception_matcher?(node); end
  def empty_raise_error_or_exception(param0 = T.unsafe(nil)); end
  def on_send(node); end
end

RuboCop::Cop::RSpec::UnspecifiedException::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::UnspecifiedException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

module RuboCop::Cop::RSpec::Variable
  extend ::RuboCop::AST::NodePattern::Macros

  def variable_definition?(param0 = T.unsafe(nil)); end
end

RuboCop::Cop::RSpec::Variable::Helpers = RuboCop::RSpec::Language::Helpers
RuboCop::Cop::RSpec::Variable::Subjects = RuboCop::RSpec::Language::Subjects

class RuboCop::Cop::RSpec::VariableDefinition < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  include ::RuboCop::Cop::RSpec::Variable

  def on_send(node); end

  private

  def string?(node); end
  def style_violation?(variable); end
  def symbol?(node); end
end

RuboCop::Cop::RSpec::VariableDefinition::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::VariableName < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::ConfigurableEnforcedStyle
  include ::RuboCop::Cop::ConfigurableFormatting
  include ::RuboCop::Cop::ConfigurableNaming
  include ::RuboCop::Cop::IgnoredPattern
  include ::RuboCop::Cop::RSpec::Variable

  def on_send(node); end

  private

  def message(style); end
end

RuboCop::Cop::RSpec::VariableName::MSG = T.let(T.unsafe(nil), String)

class RuboCop::Cop::RSpec::VerifiedDoubles < ::RuboCop::Cop::RSpec::Base
  def on_send(node); end
  def unverified_double(param0 = T.unsafe(nil)); end

  private

  def symbol?(name); end
end

RuboCop::Cop::RSpec::VerifiedDoubles::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::VerifiedDoubles::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::VoidExpect < ::RuboCop::Cop::RSpec::Base
  def expect?(param0 = T.unsafe(nil)); end
  def expect_block?(param0 = T.unsafe(nil)); end
  def on_block(node); end
  def on_send(node); end

  private

  def check_expect(node); end
  def void?(expect); end
end

RuboCop::Cop::RSpec::VoidExpect::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::RSpec::VoidExpect::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)

class RuboCop::Cop::RSpec::Yield < ::RuboCop::Cop::RSpec::Base
  include ::RuboCop::Cop::RangeHelp
  extend ::RuboCop::Cop::AutoCorrector

  def block_arg(param0 = T.unsafe(nil)); end
  def block_call?(param0 = T.unsafe(nil), param1); end
  def method_on_stub?(param0); end
  def on_block(node); end

  private

  def autocorrect(corrector, node, range); end
  def block_range(node); end
  def calling_block?(node, block); end
  def convert_block_to_yield(node); end
  def generate_replacement(node); end
end

RuboCop::Cop::RSpec::Yield::MSG = T.let(T.unsafe(nil), String)
RuboCop::NodePattern = RuboCop::AST::NodePattern
RuboCop::ProcessedSource = RuboCop::AST::ProcessedSource
module RuboCop::RSpec; end

class RuboCop::RSpec::AlignLetBrace
  include ::RuboCop::RSpec::Language

  def initialize(root, token); end

  def indent_for(node); end
  def offending_tokens; end

  private

  def adjacent_let_chunks; end
  def let_group_for(let); end
  def let_token(node); end
  def root; end
  def single_line_lets; end
  def target_column_for(let); end
  def token; end
end

class RuboCop::RSpec::Concept
  include ::RuboCop::RSpec::Language
  extend ::RuboCop::AST::NodePattern::Macros
  extend ::RuboCop::RSpec::Language::NodePattern

  def initialize(node); end

  def ==(other); end
  def eql?(other); end
  def hash; end
  def to_node; end

  protected

  def node; end
end

module RuboCop::RSpec::Corrector; end

class RuboCop::RSpec::Corrector::MoveNode
  include ::RuboCop::Cop::RangeHelp
  include ::RuboCop::Cop::RSpec::FinalEndLocation
  include ::RuboCop::Cop::RSpec::CommentsHelp

  def initialize(node, corrector, processed_source); end

  def corrector; end
  def move_after(other); end
  def move_before(other); end
  def original; end
  def processed_source; end

  private

  def node_range(node); end
  def node_range_with_surrounding_space(node); end
  def source(node); end
end

class RuboCop::RSpec::Example < ::RuboCop::RSpec::Concept
  def definition; end
  def doc_string; end
  def extract_doc_string(param0 = T.unsafe(nil)); end
  def extract_implementation(param0 = T.unsafe(nil)); end
  def extract_metadata(param0 = T.unsafe(nil)); end
  def implementation; end
  def metadata; end
end

class RuboCop::RSpec::ExampleGroup < ::RuboCop::RSpec::Concept
  def examples; end
  def hooks; end
  def lets; end
  def scope_change?(param0 = T.unsafe(nil)); end
  def subjects; end

  private

  def find_all(node, predicate); end
  def find_all_in_scope(node, predicate); end
end

module RuboCop::RSpec::FactoryBot
  class << self
    def attribute_defining_methods; end
    def reserved_methods; end
  end
end

RuboCop::RSpec::FactoryBot::ATTRIBUTE_DEFINING_METHODS = T.let(T.unsafe(nil), Array)
RuboCop::RSpec::FactoryBot::DEFINITION_PROXY_METHODS = T.let(T.unsafe(nil), Array)
RuboCop::RSpec::FactoryBot::RESERVED_METHODS = T.let(T.unsafe(nil), Array)
RuboCop::RSpec::FactoryBot::UNPROXIED_METHODS = T.let(T.unsafe(nil), Array)

class RuboCop::RSpec::Hook < ::RuboCop::RSpec::Concept
  def example?; end
  def extract_metadata(param0 = T.unsafe(nil)); end
  def knowable_scope?; end
  def metadata; end
  def name; end
  def scope; end

  private

  def scope_argument; end
  def scope_name; end
  def transform_metadata(meta); end
  def transform_true(node); end
  def valid_scope?(node); end
end

module RuboCop::RSpec::Inject
  class << self
    def defaults!; end
  end
end

module RuboCop::RSpec::Language
  extend ::RuboCop::AST::NodePattern::Macros
  extend ::RuboCop::RSpec::Language::NodePattern

  def example?(param0 = T.unsafe(nil)); end
  def example_group?(param0 = T.unsafe(nil)); end
  def example_group_with_body?(param0 = T.unsafe(nil)); end
  def hook?(param0 = T.unsafe(nil)); end
  def include?(param0 = T.unsafe(nil)); end
  def let?(param0 = T.unsafe(nil)); end
  def rspec?(param0 = T.unsafe(nil)); end
  def shared_group?(param0 = T.unsafe(nil)); end
  def spec_group?(param0 = T.unsafe(nil)); end
  def subject?(param0 = T.unsafe(nil)); end

  class << self
    def config; end
    def config=(_arg0); end
  end
end

module RuboCop::RSpec::Language::ALL
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Language::ExampleGroups
  class << self
    def all(element); end
    def focused(element); end
    def regular(element); end
    def skipped(element); end
  end
end

module RuboCop::RSpec::Language::Examples
  class << self
    def all(element); end
    def focused(element); end
    def pending(element); end
    def regular(element); end
    def skipped(element); end
  end
end

module RuboCop::RSpec::Language::Expectations
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Language::Helpers
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Language::HookScopes
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Language::Hooks
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Language::Includes
  class << self
    def all(element); end
    def context(element); end
    def examples(element); end
  end
end

module RuboCop::RSpec::Language::NodePattern
  def block_pattern(string); end
  def send_pattern(string); end
end

module RuboCop::RSpec::Language::Runners
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Language::SharedGroups
  class << self
    def all(element); end
    def context(element); end
    def examples(element); end
  end
end

module RuboCop::RSpec::Language::Subjects
  class << self
    def all(element); end
  end
end

module RuboCop::RSpec::Node
  def recursive_literal_or_const?; end
end

module RuboCop::RSpec::Version; end
RuboCop::RSpec::Version::STRING = T.let(T.unsafe(nil), String)

class RuboCop::RSpec::Wording
  def initialize(text, ignore:, replace:); end

  def rewrite; end

  private

  def append_suffix(word, suffix); end
  def ignored_word?(word); end
  def ignores; end
  def remove_should_and_pluralize; end
  def replace_prefix(pattern, replacement); end
  def replacements; end
  def substitute(word); end
  def text; end
  def uppercase?(word); end
end

RuboCop::RSpec::Wording::ES_SUFFIX_PATTERN = T.let(T.unsafe(nil), Regexp)
RuboCop::RSpec::Wording::IES_SUFFIX_PATTERN = T.let(T.unsafe(nil), Regexp)
RuboCop::RSpec::Wording::SHOULDNT_BE_PREFIX = T.let(T.unsafe(nil), Regexp)
RuboCop::RSpec::Wording::SHOULDNT_PREFIX = T.let(T.unsafe(nil), Regexp)
RuboCop::Token = RuboCop::AST::Token