# typed: true

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


# source://vernier//lib/vernier/version.rb#3
module Vernier
  class << self
    # source://vernier//lib/vernier/marker.rb#3
    def memory_rss; end

    # source://vernier//lib/vernier.rb#21
    def profile(mode: T.unsafe(nil), **collector_options); end

    # source://vernier//lib/vernier.rb#37
    def run(mode: T.unsafe(nil), **collector_options); end

    # source://vernier//lib/vernier.rb#42
    def start_profile(mode: T.unsafe(nil), **collector_options); end

    # source://vernier//lib/vernier.rb#54
    def stop_profile; end

    # source://vernier//lib/vernier.rb#36
    def trace(mode: T.unsafe(nil), **collector_options); end

    # source://vernier//lib/vernier.rb#63
    def trace_retained(**profile_options, &block); end
  end
end

# source://vernier//lib/vernier/collector.rb#7
class Vernier::Collector
  # @return [Collector] a new instance of Collector
  #
  # source://vernier//lib/vernier/collector.rb#8
  def initialize(mode, options = T.unsafe(nil)); end

  # source://vernier//lib/vernier/collector.rb#54
  def add_marker(name:, start:, finish:, thread: T.unsafe(nil), phase: T.unsafe(nil), data: T.unsafe(nil)); end

  # Get the current time.
  #
  # This method returns the current time from Process.clock_gettime in
  # integer nanoseconds.  It's the same time used by Vernier internals and
  # can be used to generate timestamps for custom markers.
  #
  # source://vernier//lib/vernier/collector.rb#50
  def current_time; end

  # Record an interval with a category and name.  Yields to a block and
  # records the amount of time spent in the block as an interval marker.
  #
  # source://vernier//lib/vernier/collector.rb#66
  def record_interval(category, name = T.unsafe(nil)); end

  # source://vernier//lib/vernier/marker.rb#3
  def sample; end

  # source://vernier//lib/vernier/marker.rb#3
  def stack_table; end

  # source://vernier//lib/vernier/marker.rb#3
  def start; end

  # source://vernier//lib/vernier/collector.rb#79
  def stop; end

  private

  # source://vernier//lib/vernier/collector.rb#33
  def add_hook(hook); end

  # source://vernier//lib/vernier/marker.rb#3
  def finish; end

  class << self
    # source://vernier//lib/vernier/marker.rb#3
    def _new(_arg0, _arg1); end

    # source://vernier//lib/vernier.rb#68
    def new(mode, options = T.unsafe(nil)); end
  end
end

# source://vernier//lib/vernier.rb#17
class Vernier::Error < ::StandardError; end

# source://vernier//lib/vernier/hooks.rb#4
module Vernier::Hooks; end

# source://vernier//lib/vernier/hooks/active_support.rb#5
class Vernier::Hooks::ActiveSupport
  # @return [ActiveSupport] a new instance of ActiveSupport
  #
  # source://vernier//lib/vernier/hooks/active_support.rb#155
  def initialize(collector); end

  # source://vernier//lib/vernier/hooks/active_support.rb#182
  def disable; end

  # source://vernier//lib/vernier/hooks/active_support.rb#159
  def enable; end

  # source://vernier//lib/vernier/hooks/active_support.rb#187
  def firefox_marker_schema; end
end

# source://vernier//lib/vernier/hooks/active_support.rb#6
Vernier::Hooks::ActiveSupport::FIREFOX_MARKER_SCHEMA = T.let(T.unsafe(nil), Array)

# source://vernier//lib/vernier/hooks/active_support.rb#148
Vernier::Hooks::ActiveSupport::SERIALIZED_KEYS = T.let(T.unsafe(nil), Hash)

# source://vernier//lib/vernier/hooks/memory_usage.rb#5
class Vernier::Hooks::MemoryUsage
  # @return [MemoryUsage] a new instance of MemoryUsage
  #
  # source://vernier//lib/vernier/hooks/memory_usage.rb#6
  def initialize(collector); end

  # source://vernier//lib/vernier/hooks/memory_usage.rb#15
  def disable; end

  # source://vernier//lib/vernier/hooks/memory_usage.rb#11
  def enable; end

  # source://vernier//lib/vernier/hooks/memory_usage.rb#19
  def firefox_counters; end
end

# source://vernier//lib/vernier/marker.rb#6
module Vernier::Marker
  class << self
    # Return an array of marker names.  The index of the string maps to the
    # value of the corresponding constant
    #
    # source://vernier//lib/vernier/marker.rb#36
    def name_table; end
  end
end

# source://vernier//lib/vernier/marker.rb#13
Vernier::Marker::MARKER_STRINGS = T.let(T.unsafe(nil), Array)

# source://vernier//lib/vernier/marker.rb#7
Vernier::Marker::MARKER_SYMBOLS = T.let(T.unsafe(nil), Array)

module Vernier::Marker::Phase; end
Vernier::Marker::Phase::INSTANT = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Phase::INTERVAL = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Phase::INTERVAL_END = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Phase::INTERVAL_START = T.let(T.unsafe(nil), Integer)
module Vernier::Marker::Type; end
Vernier::Marker::Type::FIBER_SWITCH = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GC_END_MARK = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GC_END_SWEEP = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GC_ENTER = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GC_EXIT = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GC_PAUSE = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GC_START = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GVL_THREAD_EXITED = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::GVL_THREAD_STARTED = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::THREAD_RUNNING = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::THREAD_STALLED = T.let(T.unsafe(nil), Integer)
Vernier::Marker::Type::THREAD_SUSPENDED = T.let(T.unsafe(nil), Integer)

class Vernier::MemoryTracker
  # source://vernier//lib/vernier/marker.rb#3
  def record; end

  # source://vernier//lib/vernier/marker.rb#3
  def results; end

  # source://vernier//lib/vernier/marker.rb#3
  def start; end

  # source://vernier//lib/vernier/marker.rb#3
  def stop; end
end

# source://vernier//lib/vernier/middleware.rb#2
class Vernier::Middleware
  # @return [Middleware] a new instance of Middleware
  #
  # source://vernier//lib/vernier/middleware.rb#3
  def initialize(app, permit: T.unsafe(nil)); end

  # source://vernier//lib/vernier/middleware.rb#8
  def call(env); end
end

# source://vernier//lib/vernier/output/filename_filter.rb#4
module Vernier::Output; end

# source://vernier//lib/vernier/output/cpuprofile.rb#5
class Vernier::Output::Cpuprofile
  # @return [Cpuprofile] a new instance of Cpuprofile
  #
  # source://vernier//lib/vernier/output/cpuprofile.rb#6
  def initialize(profile); end

  # source://vernier//lib/vernier/output/cpuprofile.rb#10
  def output; end

  private

  # source://vernier//lib/vernier/output/cpuprofile.rb#53
  def build_nodes; end

  # source://vernier//lib/vernier/output/cpuprofile.rb#128
  def calculate_time_deltas(timestamps); end

  # source://vernier//lib/vernier/output/cpuprofile.rb#85
  def create_node_for_stack(stack_idx, nodes, stack_table); end

  # source://vernier//lib/vernier/output/cpuprofile.rb#22
  def data; end

  # source://vernier//lib/vernier/output/cpuprofile.rb#43
  def empty_profile; end

  # source://vernier//lib/vernier/output/cpuprofile.rb#18
  def ns_to_us(timestamp); end

  # Returns the value of attribute profile.
  #
  # source://vernier//lib/vernier/output/cpuprofile.rb#16
  def profile; end

  # source://vernier//lib/vernier/output/cpuprofile.rb#70
  def root_node; end

  # source://vernier//lib/vernier/output/cpuprofile.rb#124
  def stack_to_node_id(stack_idx); end
end

# source://vernier//lib/vernier/output/file_listing.rb#8
class Vernier::Output::FileListing
  # @return [FileListing] a new instance of FileListing
  #
  # source://vernier//lib/vernier/output/file_listing.rb#23
  def initialize(profile); end

  # source://vernier//lib/vernier/output/file_listing.rb#105
  def format_file(output, filename, all_samples, total:); end

  # source://vernier//lib/vernier/output/file_listing.rb#134
  def format_file_html(output, filename, relevant_files); end

  # source://vernier//lib/vernier/output/file_listing.rb#122
  def html_output(output, relevant_files); end

  # source://vernier//lib/vernier/output/file_listing.rb#77
  def output(template: T.unsafe(nil)); end

  # source://vernier//lib/vernier/output/file_listing.rb#27
  def samples_by_file; end

  # source://vernier//lib/vernier/output/file_listing.rb#100
  def total; end
end

# source://vernier//lib/vernier/output/file_listing.rb#9
class Vernier::Output::FileListing::SamplesByLocation
  # @return [SamplesByLocation] a new instance of SamplesByLocation
  #
  # source://vernier//lib/vernier/output/file_listing.rb#11
  def initialize; end

  # source://vernier//lib/vernier/output/file_listing.rb#15
  def +(other); end

  # Returns the value of attribute self.
  #
  # source://vernier//lib/vernier/output/file_listing.rb#10
  def self; end

  # Sets the attribute self
  #
  # @param value the value to set the attribute self to.
  #
  # source://vernier//lib/vernier/output/file_listing.rb#10
  def self=(_arg0); end

  # Returns the value of attribute total.
  #
  # source://vernier//lib/vernier/output/file_listing.rb#10
  def total; end

  # Sets the attribute total
  #
  # @param value the value to set the attribute total to.
  #
  # source://vernier//lib/vernier/output/file_listing.rb#10
  def total=(_arg0); end
end

# source://vernier//lib/vernier/output/filename_filter.rb#5
class Vernier::Output::FilenameFilter
  # @return [FilenameFilter] a new instance of FilenameFilter
  #
  # source://vernier//lib/vernier/output/filename_filter.rb#6
  def initialize; end

  # source://vernier//lib/vernier/output/filename_filter.rb#15
  def call(filename); end

  # Returns the value of attribute gem_match_regex.
  #
  # source://vernier//lib/vernier/output/filename_filter.rb#13
  def gem_match_regex; end

  # Returns the value of attribute gem_regex.
  #
  # source://vernier//lib/vernier/output/filename_filter.rb#13
  def gem_regex; end

  # Returns the value of attribute pwd.
  #
  # source://vernier//lib/vernier/output/filename_filter.rb#13
  def pwd; end

  # Returns the value of attribute rubylibdir.
  #
  # source://vernier//lib/vernier/output/filename_filter.rb#13
  def rubylibdir; end
end

# https://profiler.firefox.com/
# https://github.com/firefox-devtools/profiler/blob/main/src/types/profile.js
#
# source://vernier//lib/vernier/output/firefox.rb#12
class Vernier::Output::Firefox
  # @return [Firefox] a new instance of Firefox
  #
  # source://vernier//lib/vernier/output/firefox.rb#90
  def initialize(profile); end

  # source://vernier//lib/vernier/output/firefox.rb#95
  def output(gzip: T.unsafe(nil)); end

  private

  # source://vernier//lib/vernier/output/firefox.rb#167
  def counter_data; end

  # source://vernier//lib/vernier/output/firefox.rb#108
  def data; end

  # source://vernier//lib/vernier/output/firefox.rb#175
  def marker_schema; end

  # Returns the value of attribute profile.
  #
  # source://vernier//lib/vernier/output/firefox.rb#106
  def profile; end
end

# source://vernier//lib/vernier/output/firefox.rb#13
class Vernier::Output::Firefox::Categorizer
  # @return [Categorizer] a new instance of Categorizer
  #
  # source://vernier//lib/vernier/output/firefox.rb#15
  def initialize; end

  # @yield [category]
  #
  # source://vernier//lib/vernier/output/firefox.rb#45
  def add_category(name:, **kw); end

  # Returns the value of attribute categories.
  #
  # source://vernier//lib/vernier/output/firefox.rb#14
  def categories; end

  # source://vernier//lib/vernier/output/firefox.rb#66
  def categorize(path); end

  # source://vernier//lib/vernier/output/firefox.rb#62
  def gem_path(*names); end

  # source://vernier//lib/vernier/output/firefox.rb#54
  def get_category(name); end

  # source://vernier//lib/vernier/output/firefox.rb#58
  def starts_with(*paths); end
end

# source://vernier//lib/vernier/output/firefox.rb#70
class Vernier::Output::Firefox::Categorizer::Category
  # @return [Category] a new instance of Category
  #
  # source://vernier//lib/vernier/output/firefox.rb#72
  def initialize(idx, name:, color:, matcher: T.unsafe(nil)); end

  # source://vernier//lib/vernier/output/firefox.rb#80
  def add_subcategory(**args); end

  # Returns the value of attribute color.
  #
  # source://vernier//lib/vernier/output/firefox.rb#71
  def color; end

  # Returns the value of attribute idx.
  #
  # source://vernier//lib/vernier/output/firefox.rb#71
  def idx; end

  # Returns the value of attribute matcher.
  #
  # source://vernier//lib/vernier/output/firefox.rb#71
  def matcher; end

  # @return [Boolean]
  #
  # source://vernier//lib/vernier/output/firefox.rb#84
  def matches?(path); end

  # Returns the value of attribute name.
  #
  # source://vernier//lib/vernier/output/firefox.rb#71
  def name; end

  # Returns the value of attribute subcategories.
  #
  # source://vernier//lib/vernier/output/firefox.rb#71
  def subcategories; end
end

# source://vernier//lib/vernier/output/firefox.rb#242
class Vernier::Output::Firefox::Thread
  # @return [Thread] a new instance of Thread
  #
  # source://vernier//lib/vernier/output/firefox.rb#245
  def initialize(ruby_thread_id, profile, categorizer, name:, tid:, samples:, weights:, markers:, started_at:, timestamps: T.unsafe(nil), sample_categories: T.unsafe(nil), stopped_at: T.unsafe(nil), allocations: T.unsafe(nil), is_main: T.unsafe(nil), is_start: T.unsafe(nil)); end

  # source://vernier//lib/vernier/output/firefox.rb#418
  def allocations_table; end

  # source://vernier//lib/vernier/output/firefox.rb#346
  def data; end

  # source://vernier//lib/vernier/output/firefox.rb#339
  def filter_filenames(filenames); end

  # source://vernier//lib/vernier/output/firefox.rb#498
  def frame_table; end

  # source://vernier//lib/vernier/output/firefox.rb#526
  def func_table; end

  # Returns the value of attribute is_start.
  #
  # source://vernier//lib/vernier/output/firefox.rb#243
  def is_start; end

  # source://vernier//lib/vernier/output/firefox.rb#378
  def markers_table; end

  # Returns the value of attribute profile.
  #
  # source://vernier//lib/vernier/output/firefox.rb#243
  def profile; end

  # source://vernier//lib/vernier/output/firefox.rb#437
  def samples_table; end

  # source://vernier//lib/vernier/output/firefox.rb#473
  def stack_table; end

  # source://vernier//lib/vernier/output/firefox.rb#551
  def string_table; end

  private

  # source://vernier//lib/vernier/output/firefox.rb#573
  def gc_category; end

  # source://vernier//lib/vernier/output/firefox.rb#577
  def thread_category; end
end

# source://vernier//lib/vernier/output/top.rb#5
class Vernier::Output::Top
  # @return [Top] a new instance of Top
  #
  # source://vernier//lib/vernier/output/top.rb#6
  def initialize(profile); end

  # source://vernier//lib/vernier/output/top.rb#49
  def output; end
end

# source://vernier//lib/vernier/output/top.rb#10
class Vernier::Output::Top::Table
  # @return [Table] a new instance of Table
  # @yield [_self]
  # @yieldparam _self [Vernier::Output::Top::Table] the object that the method was called on
  #
  # source://vernier//lib/vernier/output/top.rb#11
  def initialize(header); end

  # source://vernier//lib/vernier/output/top.rb#17
  def <<(row); end

  # source://vernier//lib/vernier/output/top.rb#44
  def format_row(row); end

  # source://vernier//lib/vernier/output/top.rb#40
  def row_separator; end

  # source://vernier//lib/vernier/output/top.rb#21
  def to_s; end

  # source://vernier//lib/vernier/output/top.rb#33
  def widths; end
end

# source://vernier//lib/vernier/parsed_profile.rb#7
class Vernier::ParsedProfile
  # @return [ParsedProfile] a new instance of ParsedProfile
  #
  # source://vernier//lib/vernier/parsed_profile.rb#87
  def initialize(data); end

  # Returns the value of attribute data.
  #
  # source://vernier//lib/vernier/parsed_profile.rb#86
  def data; end

  # source://vernier//lib/vernier/parsed_profile.rb#98
  def main_thread; end

  # source://vernier//lib/vernier/parsed_profile.rb#91
  def threads; end

  class << self
    # source://vernier//lib/vernier/parsed_profile.rb#8
    def read_file(filename); end
  end
end

# source://vernier//lib/vernier/parsed_profile.rb#24
class Vernier::ParsedProfile::StackTable
  include ::Vernier::StackTableHelpers

  # @return [StackTable] a new instance of StackTable
  #
  # source://vernier//lib/vernier/parsed_profile.rb#25
  def initialize(thread_data); end

  # source://vernier//lib/vernier/parsed_profile.rb#39
  def frame_count; end

  # source://vernier//lib/vernier/parsed_profile.rb#45
  def frame_func_idx(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#46
  def frame_line_no(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#40
  def func_count; end

  # source://vernier//lib/vernier/parsed_profile.rb#51
  def func_filename(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#49
  def func_filename_idx(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#52
  def func_first_lineno(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#50
  def func_name(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#48
  def func_name_idx(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#38
  def stack_count; end

  # source://vernier//lib/vernier/parsed_profile.rb#43
  def stack_frame_idx(idx); end

  # source://vernier//lib/vernier/parsed_profile.rb#42
  def stack_parent_idx(idx); end

  # Returns the value of attribute strings.
  #
  # source://vernier//lib/vernier/parsed_profile.rb#36
  def strings; end
end

# source://vernier//lib/vernier/parsed_profile.rb#57
class Vernier::ParsedProfile::Thread
  # @return [Thread] a new instance of Thread
  #
  # source://vernier//lib/vernier/parsed_profile.rb#60
  def initialize(data); end

  # Emulate hash
  #
  # source://vernier//lib/vernier/parsed_profile.rb#81
  def [](name); end

  # Returns the value of attribute data.
  #
  # source://vernier//lib/vernier/parsed_profile.rb#58
  def data; end

  # @return [Boolean]
  #
  # source://vernier//lib/vernier/parsed_profile.rb#68
  def main_thread?; end

  # source://vernier//lib/vernier/parsed_profile.rb#72
  def samples; end

  # source://vernier//lib/vernier/parsed_profile.rb#64
  def stack_table; end

  # source://vernier//lib/vernier/parsed_profile.rb#76
  def weights; end
end

# source://vernier//lib/vernier/result.rb#2
class Vernier::Result
  # Returns the value of attribute stack_table.
  #
  # source://vernier//lib/vernier/result.rb#4
  def _stack_table; end

  # source://vernier//lib/vernier/result.rb#61
  def each_sample; end

  # source://vernier//lib/vernier/result.rb#53
  def elapsed_seconds; end

  # Returns the value of attribute end_time.
  #
  # source://vernier//lib/vernier/result.rb#10
  def end_time; end

  # Sets the attribute end_time
  #
  # @param value the value to set the attribute end_time to.
  #
  # source://vernier//lib/vernier/result.rb#10
  def end_time=(_arg0); end

  # Returns the value of attribute gc_markers.
  #
  # source://vernier//lib/vernier/result.rb#6
  def gc_markers; end

  # Returns the value of attribute hooks.
  #
  # source://vernier//lib/vernier/result.rb#8
  def hooks; end

  # Sets the attribute hooks
  #
  # @param value the value to set the attribute hooks to.
  #
  # source://vernier//lib/vernier/result.rb#8
  def hooks=(_arg0); end

  # source://vernier//lib/vernier/result.rb#57
  def inspect; end

  # source://vernier//lib/vernier/result.rb#15
  def main_thread; end

  # Returns the value of attribute meta.
  #
  # source://vernier//lib/vernier/result.rb#12
  def meta; end

  # Sets the attribute meta
  #
  # @param value the value to set the attribute meta to.
  #
  # source://vernier//lib/vernier/result.rb#12
  def meta=(_arg0); end

  # Returns the value of attribute mode.
  #
  # source://vernier//lib/vernier/result.rb#13
  def mode; end

  # Sets the attribute mode
  #
  # @param value the value to set the attribute mode to.
  #
  # source://vernier//lib/vernier/result.rb#13
  def mode=(_arg0); end

  # Returns the value of attribute pid.
  #
  # source://vernier//lib/vernier/result.rb#10
  def pid; end

  # Sets the attribute pid
  #
  # @param value the value to set the attribute pid to.
  #
  # source://vernier//lib/vernier/result.rb#10
  def pid=(_arg0); end

  # source://vernier//lib/vernier/result.rb#22
  def sample_categories; end

  # source://vernier//lib/vernier/result.rb#21
  def samples; end

  # source://vernier//lib/vernier/result.rb#70
  def stack(idx); end

  # Returns the value of attribute stack_table.
  #
  # source://vernier//lib/vernier/result.rb#3
  def stack_table; end

  # Sets the attribute stack_table
  #
  # @param value the value to set the attribute stack_table to.
  #
  # source://vernier//lib/vernier/result.rb#3
  def stack_table=(_arg0); end

  # Realtime in nanoseconds since the unix epoch
  #
  # source://vernier//lib/vernier/result.rb#25
  def started_at; end

  # Returns the value of attribute threads.
  #
  # source://vernier//lib/vernier/result.rb#11
  def threads; end

  # Sets the attribute threads
  #
  # @param value the value to set the attribute threads to.
  #
  # source://vernier//lib/vernier/result.rb#11
  def threads=(_arg0); end

  # source://vernier//lib/vernier/result.rb#37
  def to_cpuprofile; end

  # source://vernier//lib/vernier/result.rb#32
  def to_firefox(gzip: T.unsafe(nil)); end

  # source://vernier//lib/vernier/result.rb#35
  def to_gecko(gzip: T.unsafe(nil)); end

  # source://vernier//lib/vernier/result.rb#74
  def total_bytes; end

  # TODO: remove these
  #
  # source://vernier//lib/vernier/result.rb#20
  def weights; end

  # source://vernier//lib/vernier/result.rb#41
  def write(out:, format: T.unsafe(nil)); end
end

# source://vernier//lib/vernier/stack_table.rb#4
class Vernier::StackTable
  include ::Vernier::StackTableHelpers

  # source://vernier//lib/vernier/marker.rb#3
  def convert(_arg0, _arg1); end

  # source://vernier//lib/vernier/marker.rb#3
  def current_stack(*_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def frame_count; end

  # source://vernier//lib/vernier/marker.rb#3
  def frame_func_idx(_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def frame_line_no(_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def func_count; end

  # source://vernier//lib/vernier/marker.rb#3
  def func_filename(_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def func_first_lineno(_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def func_name(_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def stack_count; end

  # source://vernier//lib/vernier/marker.rb#3
  def stack_frame_idx(_arg0); end

  # source://vernier//lib/vernier/marker.rb#3
  def stack_parent_idx(_arg0); end

  class << self
    # source://vernier//lib/vernier/marker.rb#3
    def new; end
  end
end

# source://vernier//lib/vernier/stack_table_helpers.rb#2
module Vernier::StackTableHelpers
  # source://vernier//lib/vernier/stack_table_helpers.rb#25
  def backtrace(stack_idx); end

  # source://vernier//lib/vernier/stack_table_helpers.rb#37
  def full_stack(stack_idx); end

  # source://vernier//lib/vernier/stack_table_helpers.rb#3
  def inspect; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#136
  def stack(idx); end

  # source://vernier//lib/vernier/stack_table_helpers.rb#7
  def to_h; end
end

# source://vernier//lib/vernier/stack_table_helpers.rb#46
class Vernier::StackTableHelpers::BaseType
  # @return [BaseType] a new instance of BaseType
  #
  # source://vernier//lib/vernier/stack_table_helpers.rb#48
  def initialize(stack_table, idx); end

  # Returns the value of attribute idx.
  #
  # source://vernier//lib/vernier/stack_table_helpers.rb#47
  def idx; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#53
  def inspect; end

  # Returns the value of attribute stack_table.
  #
  # source://vernier//lib/vernier/stack_table_helpers.rb#47
  def stack_table; end
end

# source://vernier//lib/vernier/stack_table_helpers.rb#73
class Vernier::StackTableHelpers::Frame < ::Vernier::StackTableHelpers::BaseType
  # source://vernier//lib/vernier/stack_table_helpers.rb#75
  def filename; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#78
  def func; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#74
  def label; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#83
  def line; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#76
  def name; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#87
  def to_s; end
end

# source://vernier//lib/vernier/stack_table_helpers.rb#58
class Vernier::StackTableHelpers::Func < ::Vernier::StackTableHelpers::BaseType
  # source://vernier//lib/vernier/stack_table_helpers.rb#64
  def filename; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#59
  def label; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#62
  def name; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#68
  def to_s; end
end

# source://vernier//lib/vernier/stack_table_helpers.rb#92
class Vernier::StackTableHelpers::Stack < ::Vernier::StackTableHelpers::BaseType
  # @raise [RangeError]
  #
  # source://vernier//lib/vernier/stack_table_helpers.rb#105
  def [](n); end

  # source://vernier//lib/vernier/stack_table_helpers.rb#93
  def each; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#103
  def each_frame; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#123
  def frames; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#119
  def leaf_frame; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#115
  def leaf_frame_idx; end

  # source://vernier//lib/vernier/stack_table_helpers.rb#127
  def to_s; end
end

# Collects names of all seen threads
#
# source://vernier//lib/vernier/thread_names.rb#3
class Vernier::ThreadNames
  # @return [ThreadNames] a new instance of ThreadNames
  #
  # source://vernier//lib/vernier/thread_names.rb#4
  def initialize; end

  # source://vernier//lib/vernier/thread_names.rb#12
  def [](object_id); end

  # source://vernier//lib/vernier/thread_names.rb#16
  def finish; end

  private

  # source://vernier//lib/vernier/thread_names.rb#23
  def collect_running; end

  # source://vernier//lib/vernier/thread_names.rb#29
  def collect_thread(th); end

  # source://vernier//lib/vernier/thread_names.rb#33
  def pretty_name(thread); end
end

# source://vernier//lib/vernier/version.rb#4
Vernier::VERSION = T.let(T.unsafe(nil), String)
