# typed: true

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

::RUBY19 = T.let(T.unsafe(nil), TrueClass)

module Hpricot
  class << self
    def XML(input = T.unsafe(nil), opts = T.unsafe(nil), &blk); end
    def buffer_size; end
    def buffer_size=(_arg0); end
    def build(ele = T.unsafe(nil), assigns = T.unsafe(nil), &blk); end
    def css(_arg0, _arg1, _arg2); end
    def make(input = T.unsafe(nil), opts = T.unsafe(nil), &blk); end
    def parse(input = T.unsafe(nil), opts = T.unsafe(nil), &blk); end
    def scan(*_arg0); end
    def uxs(str); end
  end
end

Hpricot::AttrCore = T.let(T.unsafe(nil), Array)
Hpricot::AttrEvents = T.let(T.unsafe(nil), Array)
Hpricot::AttrFocus = T.let(T.unsafe(nil), Array)
Hpricot::AttrHAlign = T.let(T.unsafe(nil), Array)
Hpricot::AttrI18n = T.let(T.unsafe(nil), Array)
Hpricot::AttrVAlign = T.let(T.unsafe(nil), Array)

class Hpricot::Attributes
  def initialize(e); end

  def [](k); end
  def []=(k, v); end
  def element; end
  def element=(_arg0); end
  def inspect; end
  def to_hash; end
  def to_s; end
end

Hpricot::Attrs = T.let(T.unsafe(nil), Array)

class Hpricot::BlankSlate
  class << self
    def hide(name); end
  end
end

class Hpricot::BogusETag
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::BogusETag::Trav

  def initialize(name); end

  def clear_raw; end
  def output(out, opts = T.unsafe(nil)); end
  def pretty_print(q); end
  def raw_string; end
end

module Hpricot::BogusETag::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
end

module Hpricot::Builder
  def <<(string); end
  def a(*args, &block); end
  def abbr(*args, &block); end
  def acronym(*args, &block); end
  def add_child(ele); end
  def address(*args, &block); end
  def applet(*args, &block); end
  def area(*args, &block); end
  def b(*args, &block); end
  def base(*args, &block); end
  def basefont(*args, &block); end
  def bdo(*args, &block); end
  def big(*args, &block); end
  def blockquote(*args, &block); end
  def body(*args, &block); end
  def br(*args, &block); end
  def build(*a, &b); end
  def button(*args, &block); end
  def caption(*args, &block); end
  def center(*args, &block); end
  def cite(*args, &block); end
  def code(*args, &block); end
  def col(*args, &block); end
  def colgroup(*args, &block); end
  def concat(string); end
  def dd(*args, &block); end
  def del(*args, &block); end
  def dfn(*args, &block); end
  def dir(*args, &block); end
  def div(*args, &block); end
  def dl(*args, &block); end
  def doctype(target, pub, sys); end
  def dt(*args, &block); end
  def em(*args, &block); end
  def fieldset(*args, &block); end
  def font(*args, &block); end
  def form(*args, &block); end
  def h1(*args, &block); end
  def h2(*args, &block); end
  def h3(*args, &block); end
  def h4(*args, &block); end
  def h5(*args, &block); end
  def h6(*args, &block); end
  def head(*args, &block); end
  def hr(*args, &block); end
  def html(*args, &block); end
  def html_tag(sym, *args, &block); end
  def i(*args, &block); end
  def iframe(*args, &block); end
  def img(*args, &block); end
  def input(*args, &block); end
  def ins(*args, &block); end
  def isindex(*args, &block); end
  def kbd(*args, &block); end
  def label(*args, &block); end
  def legend(*args, &block); end
  def li(*args, &block); end
  def link(*args, &block); end
  def map(*args, &block); end
  def menu(*args, &block); end
  def meta(*args, &block); end
  def noframes(*args, &block); end
  def noscript(*args, &block); end
  def object(*args, &block); end
  def ol(*args, &block); end
  def optgroup(*args, &block); end
  def option(*args, &block); end
  def p(*args, &block); end
  def param(*args, &block); end
  def pre(*args, &block); end
  def q(*args, &block); end
  def s(*args, &block); end
  def samp(*args, &block); end
  def script(*args, &block); end
  def select(*args, &block); end
  def small(*args, &block); end
  def span(*args, &block); end
  def strike(*args, &block); end
  def strong(*args, &block); end
  def style(*args, &block); end
  def sub(*args, &block); end
  def sup(*args, &block); end
  def table(*args, &block); end
  def tag!(tag, *args, &block); end
  def tbody(*args, &block); end
  def td(*args, &block); end
  def text(string); end
  def text!(string); end
  def textarea(*args, &block); end
  def tfoot(*args, &block); end
  def th(*args, &block); end
  def thead(*args, &block); end
  def title(*args, &block); end
  def tr(*args, &block); end
  def tt(*args, &block); end
  def u(*args, &block); end
  def ul(*args, &block); end
  def var(*args, &block); end
  def xhtml_strict(attrs = T.unsafe(nil), &block); end
  def xhtml_transitional(attrs = T.unsafe(nil), &block); end

  private

  def xhtml_html(attrs = T.unsafe(nil), &block); end

  class << self
    def set(option, value); end
  end
end

class Hpricot::CData
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::CData::Trav

  def initialize(content); end

  def content; end
  def content=(_arg0); end
  def inner_text; end
  def output(out, opts = T.unsafe(nil)); end
  def raw_string; end
  def to_plain_text; end
  def to_s; end
end

module Hpricot::CData::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
end

class Hpricot::Comment
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::Comment::Trav

  def content; end
  def content=(_arg0); end
  def output(out, opts = T.unsafe(nil)); end
  def pathname; end
  def raw_string; end
end

module Hpricot::Comment::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
end

module Hpricot::Container
  include ::Hpricot
  include ::Hpricot::Node
end

module Hpricot::Container::Trav
  include ::Hpricot::Traverse

  def classes; end
  def containers; end
  def each_child(&block); end
  def each_child_with_index(&block); end
  def each_hyperlink; end
  def each_hyperlink_uri(base_uri = T.unsafe(nil)); end
  def each_uri(base_uri = T.unsafe(nil)); end
  def filter(&block); end
  def find_element(*names); end
  def following_siblings; end
  def get_element_by_id(id); end
  def get_elements_by_tag_name(*a); end
  def insert_after(nodes, ele); end
  def insert_before(nodes, ele); end
  def next_sibling; end
  def preceding_siblings; end
  def previous_sibling; end
  def replace_child(old, new); end
  def siblings_at(*pos); end
  def traverse_text_internal(&block); end

  private

  def each_hyperlink_attribute; end
end

class Hpricot::Context
  include ::Hpricot
end

class Hpricot::CssProxy < ::Hpricot::BlankSlate
  def initialize(builder, sym); end

  def method_missing(id_or_class, *args, &block); end
end

class Hpricot::Doc
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Container
  include ::Hpricot::Traverse
  include ::Hpricot::Container::Trav
  include ::Hpricot::Doc::Trav

  def altered!; end
  def inspect; end
  def inspect_tree; end
  def make(input = T.unsafe(nil), &blk); end
  def output(out, opts = T.unsafe(nil)); end
  def pretty_print(q); end
end

module Hpricot::Doc::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Container::Trav

  def author; end
  def css_path; end
  def root; end
  def title; end
  def traverse_all_element(&block); end
  def traverse_some_element(name_set, &block); end
  def xpath; end
end

class Hpricot::DocType
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::DocType::Trav

  def initialize(target, pub, sys); end

  def clear_raw; end
  def output(out, opts = T.unsafe(nil)); end
  def pathname; end
  def public_id; end
  def public_id=(_arg0); end
  def raw_string; end
  def system_id; end
  def system_id=(_arg0); end
  def target; end
  def target=(_arg0); end
end

module Hpricot::DocType::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
end

class Hpricot::ETag < ::Hpricot::BogusETag
  include ::Hpricot::Tag

  def inspect; end
  def output(out, opts = T.unsafe(nil)); end
  def pretty_print(q); end
end

class Hpricot::Elem
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Container
  include ::Hpricot::Traverse
  include ::Hpricot::Container::Trav
  include ::Hpricot::Elem::Trav

  def initialize(tag, attrs = T.unsafe(nil), children = T.unsafe(nil), etag = T.unsafe(nil)); end

  def attributes; end
  def attributes_as_html; end
  def clear_raw; end
  def empty?; end
  def inspect; end
  def inspect_tree(depth = T.unsafe(nil)); end
  def output(out, opts = T.unsafe(nil)); end
  def pathname; end
  def pretty_print(q); end
  def pretty_print_stag(q); end
  def to_plain_text; end
end

module Hpricot::Elem::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Container::Trav

  def [](name); end
  def []=(name, val); end
  def get_attribute(name); end
  def has_attribute?(name); end
  def remove_attribute(name); end
  def set_attribute(name, val); end
  def traverse_all_element(&block); end
  def traverse_some_element(name_set, &block); end
end

Hpricot::ElementContent = T.let(T.unsafe(nil), Hash)
Hpricot::ElementExclusions = T.let(T.unsafe(nil), Hash)
Hpricot::ElementInclusions = T.let(T.unsafe(nil), Hash)

class Hpricot::Elements < ::Array
  def %(expr, &blk); end
  def /(*expr, &blk); end
  def add_class(class_name); end
  def after(str = T.unsafe(nil), &blk); end
  def append(str = T.unsafe(nil), &blk); end
  def at(expr, &blk); end
  def attr(key, value = T.unsafe(nil), &blk); end
  def before(str = T.unsafe(nil), &blk); end
  def empty; end
  def filter(expr); end
  def html(*string); end
  def html=(string); end
  def innerHTML(*string); end
  def innerHTML=(string); end
  def inner_html(*string); end
  def inner_html=(string); end
  def inner_text; end
  def inspect; end
  def not(expr); end
  def prepend(str = T.unsafe(nil), &blk); end
  def pretty_print(q); end
  def remove; end
  def remove_attr(name); end
  def remove_class(name = T.unsafe(nil)); end
  def search(*expr, &blk); end
  def set(key, value = T.unsafe(nil), &blk); end
  def text; end
  def to_html; end
  def to_s; end
  def wrap(str = T.unsafe(nil), &blk); end

  private

  def copy_node(node, l); end

  class << self
    def expand(ele1, ele2, excl = T.unsafe(nil)); end
    def filter(nodes, expr, truth = T.unsafe(nil)); end
  end
end

Hpricot::Elements::ATTR_RE = T.let(T.unsafe(nil), Regexp)
Hpricot::Elements::BRACK_RE = T.let(T.unsafe(nil), Regexp)
Hpricot::Elements::CATCH_RE = T.let(T.unsafe(nil), Regexp)
Hpricot::Elements::CUST_RE = T.let(T.unsafe(nil), Regexp)
Hpricot::Elements::FUNC_RE = T.let(T.unsafe(nil), Regexp)
class Hpricot::EncodingError < ::StandardError; end
class Hpricot::Error < ::StandardError; end
Hpricot::FORM_TAGS = T.let(T.unsafe(nil), Array)

module Hpricot::Leaf
  include ::Hpricot
  include ::Hpricot::Node

  def inspect; end
  def pretty_print(q); end
end

module Hpricot::Leaf::Trav
  include ::Hpricot::Traverse

  def traverse_all_element; end
  def traverse_some_element(name_set); end
  def traverse_text_internal; end
end

class Hpricot::Name
  include ::Hpricot
end

Hpricot::NamedCharacters = T.let(T.unsafe(nil), Hash)
Hpricot::NamedCharactersPattern = T.let(T.unsafe(nil), Regexp)

module Hpricot::Node
  include ::Hpricot

  def altered!; end
  def clear_raw; end
  def html_quote(str); end
  def if_output(opts); end
  def inspect_tree(depth = T.unsafe(nil)); end
  def pathname; end
end

Hpricot::OmittedAttrName = T.let(T.unsafe(nil), Hash)
class Hpricot::ParseError < ::StandardError; end

class Hpricot::ProcIns
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::ProcIns::Trav

  def content; end
  def content=(_arg0); end
  def output(out, opts = T.unsafe(nil)); end
  def pathname; end
  def raw_string; end
  def target; end
  def target=(_arg0); end
end

module Hpricot::ProcIns::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
end

Hpricot::ProcInsParse = T.let(T.unsafe(nil), Regexp)
Hpricot::SELF_CLOSING_TAGS = T.let(T.unsafe(nil), Array)

module Hpricot::Tag
  include ::Hpricot
end

class Hpricot::Text
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::Text::Trav

  def initialize(content); end

  def <<(str); end
  def clear_raw; end
  def content; end
  def content=(_arg0); end
  def inner_text; end
  def output(out, opts = T.unsafe(nil)); end
  def pathname; end
  def pretty_print(q); end
  def raw_string; end
  def to_plain_text; end
  def to_s; end
end

module Hpricot::Text::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav

  def traverse_text_internal; end
end

module Hpricot::Traverse
  def %(expr); end
  def /(expr, &blk); end
  def after(html = T.unsafe(nil), &blk); end
  def at(expr); end
  def before(html = T.unsafe(nil), &blk); end
  def bogusetag?; end
  def children_of_type(tag_name); end
  def clean_path(path); end
  def comment?; end
  def css_path; end
  def doc?; end
  def doctype?; end
  def elem?; end
  def following; end
  def get_subnode(*indexes); end
  def html(inner = T.unsafe(nil), &blk); end
  def index(name); end
  def innerHTML(inner = T.unsafe(nil), &blk); end
  def innerHTML=(inner); end
  def innerText; end
  def inner_html(inner = T.unsafe(nil), &blk); end
  def inner_html=(inner); end
  def inner_text; end
  def make(input = T.unsafe(nil), &blk); end
  def next; end
  def next_node; end
  def node_position; end
  def nodes_at(*pos); end
  def position; end
  def preceding; end
  def previous; end
  def previous_node; end
  def procins?; end
  def search(expr, &blk); end
  def swap(html = T.unsafe(nil), &blk); end
  def text?; end
  def to_html; end
  def to_original_html; end
  def to_plain_text; end
  def to_s; end
  def traverse_element(*names, &block); end
  def traverse_text(&block); end
  def xmldecl?; end
  def xpath; end

  private

  def reparent(nodes); end

  class << self
    def filter(tok, &blk); end
  end
end

class Hpricot::XHTMLStrict
  class << self
    def doctype; end
    def doctype=(_arg0); end
    def forms; end
    def forms=(_arg0); end
    def self_closing; end
    def self_closing=(_arg0); end
    def tags; end
    def tags=(_arg0); end
    def tagset; end
    def tagset=(_arg0); end
  end
end

class Hpricot::XHTMLTransitional
  class << self
    def doctype; end
    def doctype=(_arg0); end
    def forms; end
    def forms=(_arg0); end
    def self_closing; end
    def self_closing=(_arg0); end
    def tags; end
    def tags=(_arg0); end
    def tagset; end
    def tagset=(_arg0); end
  end
end

class Hpricot::XMLDecl
  include ::Hpricot
  include ::Hpricot::Node
  include ::Hpricot::Leaf
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
  include ::Hpricot::XMLDecl::Trav

  def clear_raw; end
  def encoding; end
  def encoding=(_arg0); end
  def output(out, opts = T.unsafe(nil)); end
  def pathname; end
  def raw_string; end
  def standalone; end
  def standalone=(_arg0); end
  def version; end
  def version=(_arg0); end
end

module Hpricot::XMLDecl::Trav
  include ::Hpricot::Traverse
  include ::Hpricot::Leaf::Trav
end

class Object < ::BasicObject
  include ::ActiveSupport::ToJsonWithActiveSupportEncoder
  include ::ActiveSupport::ForkTracker::CoreExt
  include ::ActiveSupport::ForkTracker::CoreExtPrivate
  include ::Kernel
  include ::JSON::Ext::Generator::GeneratorMethods::Object
  include ::PP::ObjectMixin
  include ::ActiveSupport::Dependencies::Loadable
  include ::ActiveSupport::Tryable

  private

  def Hpricot(input = T.unsafe(nil), opts = T.unsafe(nil), &blk); end

  class << self
    def method_added(name); end
  end
end
