# typed: true

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

# source://standard-performance//lib/standard/performance/version.rb#1
module Standard; end

# source://standard-performance//lib/standard/performance/version.rb#2
module Standard::Performance; end

# source://standard-performance//lib/standard/performance/builds_ruleset.rb#6
class Standard::Performance::BuildsRuleset
  # @return [BuildsRuleset] a new instance of BuildsRuleset
  #
  # source://standard-performance//lib/standard/performance/builds_ruleset.rb#7
  def initialize; end

  # source://standard-performance//lib/standard/performance/builds_ruleset.rb#13
  def build(target_ruby_version); end
end

# source://standard-performance//lib/standard/performance/determines_yaml_path.rb#3
class Standard::Performance::DeterminesYamlPath
  # source://standard-performance//lib/standard/performance/determines_yaml_path.rb#4
  def determine(desired_version); end
end

# source://standard-performance//lib/standard/performance/loads_yaml_with_inheritance.rb#5
class Standard::Performance::LoadsYamlWithInheritance
  # source://standard-performance//lib/standard/performance/loads_yaml_with_inheritance.rb#6
  def load(path); end

  private

  # source://standard-performance//lib/standard/performance/loads_yaml_with_inheritance.rb#20
  def two_layer_merge(parent, base); end
end

# source://standard-performance//lib/standard/performance/plugin.rb#4
class Standard::Performance::Plugin < ::LintRoller::Plugin
  # @return [Plugin] a new instance of Plugin
  #
  # source://standard-performance//lib/standard/performance/plugin.rb#5
  def initialize(config); end

  # source://standard-performance//lib/standard/performance/plugin.rb#10
  def about; end

  # source://standard-performance//lib/standard/performance/plugin.rb#23
  def rules(context); end

  # @return [Boolean]
  #
  # source://standard-performance//lib/standard/performance/plugin.rb#19
  def supported?(context); end

  private

  # This is not fantastic.
  #
  # When you `require "rubocop-performance"`, it will not only load the cops,
  # but it will also monkey-patch RuboCop's default_configuration, which is
  # something that can't be undone for the lifetime of the process.
  #
  # See: https://github.com/rubocop/rubocop-performance/commit/587050a8c0ec6d2fa64f5be970425a7f4c5d779b
  #
  # As an alternative, standard-performance loads the cops directly, and then
  # simply tells the RuboCop config loader that it's been loaded. This is
  # taking advantage of a private API of an `attr_reader` that probably wasn't
  # meant to be mutated externally, but it's better than the `Inject` monkey
  # patching that rubocop-performance does (and many other RuboCop plugins do)
  #
  # source://standard-performance//lib/standard/performance/plugin.rb#48
  def trick_rubocop_into_thinking_we_required_rubocop_performance!; end
end

# source://standard-performance//lib/standard/performance/version.rb#3
Standard::Performance::VERSION = T.let(T.unsafe(nil), String)