# typed: true

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

# source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#30
module ActionView
  class << self
    # source://actionview/7.0.3.1/lib/action_view.rb#90
    def eager_load!; end

    # source://actionview/7.0.3.1/lib/action_view/gem_version.rb#5
    def gem_version; end

    # source://actionview/7.0.3.1/lib/action_view/version.rb#7
    def version; end
  end
end

# source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#31
module ActionView::Helpers
  include ::ActionView::Helpers::SanitizeHelper
  include ::ActionView::Helpers::TextHelper
  include ::ActionView::Helpers::UrlHelper
  include ::ActionView::Helpers::SanitizeHelper
  include ::ActionView::Helpers::TextHelper
  include ::ActionView::Helpers::FormTagHelper
  include ::ActionView::Helpers::FormHelper
  include ::ActionView::Helpers::TranslationHelper

  mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods
  mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods

  class << self
    # source://actionview/7.0.3.1/lib/action_view/helpers.rb#34
    def eager_load!; end
  end
end

# source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#32
module ActionView::Helpers::SanitizeHelper
  mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#81
  def sanitize(html, options = T.unsafe(nil)); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#86
  def sanitize_css(style); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#120
  def strip_links(html); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#103
  def strip_tags(html); end
end

# source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#33
module ActionView::Helpers::SanitizeHelper::ClassMethods
  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#145
  def full_sanitizer; end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#125
  def full_sanitizer=(_arg0); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#155
  def link_sanitizer; end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#125
  def link_sanitizer=(_arg0); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#165
  def safe_list_sanitizer; end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#125
  def safe_list_sanitizer=(_arg0); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#135
  def sanitized_allowed_attributes; end

  # Replaces the allowed HTML attributes for the +sanitize+ helper.
  #
  #   class Application < Rails::Application
  #     config.action_view.sanitized_allowed_attributes = ['onclick', 'longdesc']
  #   end
  #
  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#50
  def sanitized_allowed_attributes=(attributes); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_allowed_css_keywords; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_allowed_css_keywords=(_); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_allowed_css_properties; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_allowed_css_properties=(_); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_allowed_protocols; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_allowed_protocols=(_); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#131
  def sanitized_allowed_tags; end

  # Replaces the allowed tags for the +sanitize+ helper.
  #
  #   class Application < Rails::Application
  #     config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td'
  #   end
  #
  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#40
  def sanitized_allowed_tags=(tags); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_bad_tags; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_bad_tags=(_); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_protocol_separator; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_protocol_separator=(_); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_shorthand_css_properties; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_shorthand_css_properties=(_); end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#63
  def sanitized_uri_attributes; end

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#64
  def sanitized_uri_attributes=(_); end

  # source://actionview/7.0.3.1/lib/action_view/helpers/sanitize_helper.rb#127
  def sanitizer_vendor; end

  private

  # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#68
  def deprecate_option(name); end
end

# source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#1
module Rails
  class << self
    # source://railties/7.0.3.1/lib/rails.rb#38
    def app_class; end

    # source://railties/7.0.3.1/lib/rails.rb#38
    def app_class=(_arg0); end

    # source://railties/7.0.3.1/lib/rails.rb#39
    def application; end

    # source://railties/7.0.3.1/lib/rails.rb#37
    def application=(_arg0); end

    # source://railties/7.0.3.1/lib/rails.rb#116
    def autoloaders; end

    # source://railties/7.0.3.1/lib/rails.rb#50
    def backtrace_cleaner; end

    # source://railties/7.0.3.1/lib/rails.rb#38
    def cache; end

    # source://railties/7.0.3.1/lib/rails.rb#38
    def cache=(_arg0); end

    # source://railties/7.0.3.1/lib/rails.rb#46
    def configuration; end

    # source://railties/7.0.3.1/lib/rails.rb#72
    def env; end

    # source://railties/7.0.3.1/lib/rails.rb#79
    def env=(environment); end

    # source://railties/7.0.3.1/lib/rails.rb#83
    def error; end

    # source://railties/7.0.3.1/lib/rails/gem_version.rb#5
    def gem_version; end

    # source://railties/7.0.3.1/lib/rails.rb#96
    def groups(*groups); end

    # source://railties/7.0.3.1/lib/rails.rb#43
    def initialize!(*_arg0, **_arg1, &_arg2); end

    # source://railties/7.0.3.1/lib/rails.rb#43
    def initialized?(*_arg0, **_arg1, &_arg2); end

    # source://railties/7.0.3.1/lib/rails.rb#38
    def logger; end

    # source://railties/7.0.3.1/lib/rails.rb#38
    def logger=(_arg0); end

    # source://railties/7.0.3.1/lib/rails.rb#112
    def public_path; end

    # source://railties/7.0.3.1/lib/rails.rb#63
    def root; end

    # source://railties/7.0.3.1/lib/rails/version.rb#7
    def version; end
  end
end

# source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#2
module Rails::Html; end

# === Rails::Html::FullSanitizer
# Removes all tags but strips out scripts, forms and comments.
#
# full_sanitizer = Rails::Html::FullSanitizer.new
# full_sanitizer.sanitize("<b>Bold</b> no more!  <a href='more.html'>See more here</a>...")
# # => Bold no more!  See more here...
#
# source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#28
class Rails::Html::FullSanitizer < ::Rails::Html::Sanitizer
  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#29
  def sanitize(html, options = T.unsafe(nil)); end
end

# === Rails::Html::LinkSanitizer
# Removes +a+ tags and +href+ attributes leaving only the link text.
#
#  link_sanitizer = Rails::Html::LinkSanitizer.new
#  link_sanitizer.sanitize('<a href="example.com">Only the link text will be kept.</a>')
#
#  => 'Only the link text will be kept.'
#
# source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#49
class Rails::Html::LinkSanitizer < ::Rails::Html::Sanitizer
  # @return [LinkSanitizer] a new instance of LinkSanitizer
  #
  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#50
  def initialize; end

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#56
  def sanitize(html, options = T.unsafe(nil)); end
end

# === Rails::Html::PermitScrubber
#
# +Rails::Html::PermitScrubber+ allows you to permit only your own tags and/or attributes.
#
# +Rails::Html::PermitScrubber+ can be subclassed to determine:
# - When a node should be skipped via +skip_node?+.
# - When a node is allowed via +allowed_node?+.
# - When an attribute should be scrubbed via +scrub_attribute?+.
#
# Subclasses don't need to worry if tags or attributes are set or not.
# If tags or attributes are not set, Loofah's behavior will be used.
# If you override +allowed_node?+ and no tags are set, it will not be called.
# Instead Loofahs behavior will be used.
# Likewise for +scrub_attribute?+ and attributes respectively.
#
# Text and CDATA nodes are skipped by default.
# Unallowed elements will be stripped, i.e. element is removed but its subtree kept.
# Supplied tags and attributes should be Enumerables.
#
# +tags=+
# If set, elements excluded will be stripped.
# If not, elements are stripped based on Loofahs +HTML5::Scrub.allowed_element?+.
#
# +attributes=+
# If set, attributes excluded will be removed.
# If not, attributes are removed based on Loofahs +HTML5::Scrub.scrub_attributes+.
#
#  class CommentScrubber < Html::PermitScrubber
#    def initialize
#      super
#      self.tags = %w(form script comment blockquote)
#    end
#
#    def skip_node?(node)
#      node.text?
#    end
#
#    def scrub_attribute?(name)
#      name == "style"
#    end
#  end
#
# See the documentation for +Nokogiri::XML::Node+ to understand what's possible
# with nodes: https://nokogiri.org/rdoc/Nokogiri/XML/Node.html
#
# source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#47
class Rails::Html::PermitScrubber < ::Loofah::Scrubber
  # @return [PermitScrubber] a new instance of PermitScrubber
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#50
  def initialize; end

  # Returns the value of attribute attributes.
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#48
  def attributes; end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#59
  def attributes=(attributes); end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#63
  def scrub(node); end

  # Returns the value of attribute tags.
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#48
  def tags; end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#55
  def tags=(tags); end

  protected

  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#80
  def allowed_node?(node); end

  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#92
  def keep_node?(node); end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#134
  def scrub_attribute(node, attr_node); end

  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#88
  def scrub_attribute?(name); end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#105
  def scrub_attributes(node); end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#118
  def scrub_css_attribute(node); end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#100
  def scrub_node(node); end

  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#84
  def skip_node?(node); end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#127
  def validate!(var, name); end
end

# === Rails::Html::SafeListSanitizer
# Sanitizes html and css from an extensive safe list (see link further down).
#
# === Whitespace
# We can't make any guarantees about whitespace being kept or stripped.
# Loofah uses Nokogiri, which wraps either a C or Java parser for the
# respective Ruby implementation.
# Those two parsers determine how whitespace is ultimately handled.
#
# When the stripped markup will be rendered the users browser won't take
# whitespace into account anyway. It might be better to suggest your users
# wrap their whitespace sensitive content in pre tags or that you do
# so automatically.
#
# === Options
# Sanitizes both html and css via the safe lists found here:
# https://github.com/flavorjones/loofah/blob/master/lib/loofah/html5/safelist.rb
#
# SafeListSanitizer also accepts options to configure
# the safe list used when sanitizing html.
# There's a class level option:
# Rails::Html::SafeListSanitizer.allowed_tags = %w(table tr td)
# Rails::Html::SafeListSanitizer.allowed_attributes = %w(id class style)
#
# Tags and attributes can also be passed to +sanitize+.
# Passed options take precedence over the class level options.
#
# === Examples
# safe_list_sanitizer = Rails::Html::SafeListSanitizer.new
#
# Sanitize css doesn't take options
# safe_list_sanitizer.sanitize_css('background-color: #000;')
#
# Default: sanitize via a extensive safe list of allowed elements
# safe_list_sanitizer.sanitize(@article.body)
#
# Safe list via the supplied tags and attributes
# safe_list_sanitizer.sanitize(@article.body, tags: %w(table tr td),
# attributes: %w(id class style))
#
# Safe list via a custom scrubber
# safe_list_sanitizer.sanitize(@article.body, scrubber: ArticleScrubber.new)
#
# source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#103
class Rails::Html::SafeListSanitizer < ::Rails::Html::Sanitizer
  # @return [SafeListSanitizer] a new instance of SafeListSanitizer
  #
  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#113
  def initialize; end

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#117
  def sanitize(html, options = T.unsafe(nil)); end

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#138
  def sanitize_css(style_string); end

  private

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#165
  def allowed_attributes(options); end

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#157
  def allowed_tags(options); end

  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#144
  def loofah_using_html5?; end

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#149
  def remove_safelist_tag_combinations(tags); end

  class << self
    # Returns the value of attribute allowed_attributes.
    #
    # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#106
    def allowed_attributes; end

    # Sets the attribute allowed_attributes
    #
    # @param value the value to set the attribute allowed_attributes to.
    #
    # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#106
    def allowed_attributes=(_arg0); end

    # Returns the value of attribute allowed_tags.
    #
    # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#105
    def allowed_tags; end

    # Sets the attribute allowed_tags
    #
    # @param value the value to set the attribute allowed_tags to.
    #
    # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#105
    def allowed_tags=(_arg0); end
  end
end

# source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#3
class Rails::Html::Sanitizer
  # @raise [NotImplementedError]
  #
  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#6
  def sanitize(html, options = T.unsafe(nil)); end

  private

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#17
  def properly_encode(fragment, options); end

  # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#12
  def remove_xpaths(node, xpaths); end

  class << self
    # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#10
    def full_sanitizer; end

    # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#14
    def link_sanitizer; end

    # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#18
    def safe_list_sanitizer; end

    # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#22
    def white_list_sanitizer; end
  end
end

# source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#4
Rails::Html::Sanitizer::VERSION = T.let(T.unsafe(nil), String)

# === Rails::Html::TargetScrubber
#
# Where +Rails::Html::PermitScrubber+ picks out tags and attributes to permit in
# sanitization, +Rails::Html::TargetScrubber+ targets them for removal.
#
# +tags=+
# If set, elements included will be stripped.
#
# +attributes=+
# If set, attributes included will be removed.
#
# source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#171
class Rails::Html::TargetScrubber < ::Rails::Html::PermitScrubber
  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#172
  def allowed_node?(node); end

  # @return [Boolean]
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#176
  def scrub_attribute?(name); end
end

# === Rails::Html::TextOnlyScrubber
#
# +Rails::Html::TextOnlyScrubber+ allows you to permit text nodes.
#
# Unallowed elements will be stripped, i.e. element is removed but its subtree kept.
#
# source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#186
class Rails::Html::TextOnlyScrubber < ::Loofah::Scrubber
  # @return [TextOnlyScrubber] a new instance of TextOnlyScrubber
  #
  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#187
  def initialize; end

  # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#191
  def scrub(node); end
end

# source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#170
Rails::Html::WhiteListSanitizer = Rails::Html::SafeListSanitizer

# source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#3
Rails::Html::XPATHS_TO_REMOVE = T.let(T.unsafe(nil), Array)