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

# typed: false

module ActiveSupport
  extend ::ActiveSupport::LazyLoadHooks
  extend ::ActiveSupport::Autoload

  def test_order; end
  def test_order=(val); end

  class << self
    def eager_load!; end
    def gem_version; end
    def test_order; end
    def test_order=(val); end
    def to_time_preserves_timezone; end
    def to_time_preserves_timezone=(value); end
    def utc_to_local_returns_utc_offset_times; end
    def utc_to_local_returns_utc_offset_times=(value); end
    def version; end
  end
end

module ActiveSupport::ActionableError
  extend ::ActiveSupport::Concern

  mixes_in_class_methods ::ActiveSupport::ActionableError::ClassMethods

  class << self
    def actions(error); end
    def dispatch(error, name); end
  end
end

module ActiveSupport::ActionableError::ClassMethods
  def action(name, &block); end
end

class ActiveSupport::ActionableError::NonActionable < ::StandardError; end

class ActiveSupport::ArrayInquirer < ::Array
  def any?(*candidates); end

  private

  def method_missing(name, *args); end
  def respond_to_missing?(name, include_private = T.unsafe(nil)); end
end

module ActiveSupport::Autoload
  def autoload(const_name, path = T.unsafe(nil)); end
  def autoload_at(path); end
  def autoload_under(path); end
  def autoloads; end
  def eager_autoload; end
  def eager_load!; end

  class << self
    def extended(base); end
  end
end

class ActiveSupport::BacktraceCleaner
  def initialize; end

  def add_filter(&block); end
  def add_silencer(&block); end
  def clean(backtrace, kind = T.unsafe(nil)); end
  def filter(backtrace, kind = T.unsafe(nil)); end
  def remove_filters!; end
  def remove_silencers!; end

  private

  def add_gem_filter; end
  def add_gem_silencer; end
  def add_stdlib_silencer; end
  def filter_backtrace(backtrace); end
  def noise(backtrace); end
  def silence(backtrace); end
end

ActiveSupport::BacktraceCleaner::FORMATTED_GEMS_PATTERN = T.let(T.unsafe(nil), Regexp)

module ActiveSupport::Benchmarkable
  def benchmark(message = T.unsafe(nil), options = T.unsafe(nil)); end
end

module ActiveSupport::BigDecimalWithDefaultFormat
  def to_s(format = T.unsafe(nil)); end
end

module ActiveSupport::Cache
  class << self
    def expand_cache_key(key, namespace = T.unsafe(nil)); end
    def lookup_store(store = T.unsafe(nil), *parameters); end

    private

    def retrieve_cache_key(key); end
    def retrieve_store_class(store); end
  end
end

class ActiveSupport::Cache::Entry
  def initialize(value, compress: T.unsafe(nil), compress_threshold: T.unsafe(nil), version: T.unsafe(nil), expires_in: T.unsafe(nil), **_arg5); end

  def bytesize; end
  def dup_value!; end
  def expired?; end
  def expires_at; end
  def expires_at=(value); end
  def mismatched?(version); end
  def value; end
  def version; end

  private

  def compress!(compress_threshold); end
  def compressed?; end
  def uncompress(value); end
end

ActiveSupport::Cache::Entry::DEFAULT_COMPRESS_LIMIT = T.let(T.unsafe(nil), Integer)

class ActiveSupport::Cache::FileStore < ::ActiveSupport::Cache::Store
  include ::ActiveSupport::Cache::Strategy::LocalCache

  def initialize(cache_path, **options); end

  def cache_path; end

  private

  def delete_empty_directories(dir); end
  def ensure_cache_path(path); end
  def file_path_key(path); end
  def lock_file(file_name, &block); end
  def modify_value(name, amount, options); end
  def normalize_key(key, options); end
  def search_dir(dir, &callback); end

  class << self
    def supports_cache_versioning?; end
  end
end

ActiveSupport::Cache::FileStore::DIR_FORMATTER = T.let(T.unsafe(nil), String)
ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE = T.let(T.unsafe(nil), Integer)
ActiveSupport::Cache::FileStore::FILEPATH_MAX_SIZE = T.let(T.unsafe(nil), Integer)
ActiveSupport::Cache::FileStore::GITKEEP_FILES = T.let(T.unsafe(nil), Array)

class ActiveSupport::Cache::MemoryStore < ::ActiveSupport::Cache::Store
  def initialize(options = T.unsafe(nil)); end

  def cleanup(options = T.unsafe(nil)); end
  def clear(options = T.unsafe(nil)); end
  def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end
  def delete_matched(matcher, options = T.unsafe(nil)); end
  def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end
  def inspect; end
  def prune(target_size, max_time = T.unsafe(nil)); end
  def pruning?; end
  def synchronize(&block); end

  private

  def cached_size(key, payload); end
  def delete_entry(key, **options); end
  def modify_value(name, amount, options); end
  def read_entry(key, **options); end
  def write_entry(key, entry, **options); end

  class << self
    def supports_cache_versioning?; end
  end
end

ActiveSupport::Cache::MemoryStore::DEFAULT_CODER = ActiveSupport::Cache::MemoryStore::DupCoder

module ActiveSupport::Cache::MemoryStore::DupCoder
  class << self
    def dump(entry); end
    def load(entry); end
  end
end

ActiveSupport::Cache::MemoryStore::PER_ENTRY_OVERHEAD = T.let(T.unsafe(nil), Integer)

module ActiveSupport::Cache::NullCoder
  class << self
    def dump(entry); end
    def load(payload); end
  end
end

class ActiveSupport::Cache::NullStore < ::ActiveSupport::Cache::Store
  include ::ActiveSupport::Cache::Strategy::LocalCache

  class << self
    def supports_cache_versioning?; end
  end
end

class ActiveSupport::Cache::Store
  def initialize(options = T.unsafe(nil)); end

  def cleanup(options = T.unsafe(nil)); end
  def clear(options = T.unsafe(nil)); end
  def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end
  def delete(name, options = T.unsafe(nil)); end
  def delete_matched(matcher, options = T.unsafe(nil)); end
  def delete_multi(names, options = T.unsafe(nil)); end
  def exist?(name, options = T.unsafe(nil)); end
  def fetch(name, options = T.unsafe(nil), &block); end
  def fetch_multi(*names); end
  def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end
  def logger; end
  def logger=(val); end
  def mute; end
  def options; end
  def read(name, options = T.unsafe(nil)); end
  def read_multi(*names); end
  def silence; end
  def silence!; end
  def silence?; end
  def write(name, value, options = T.unsafe(nil)); end
  def write_multi(hash, options = T.unsafe(nil)); end

  private

  def delete_entry(key, **options); end
  def delete_multi_entries(entries, **options); end
  def deserialize_entry(payload); end
  def expanded_key(key); end
  def expanded_version(key); end
  def get_entry_value(entry, name, options); end
  def handle_expired_entry(entry, key, options); end
  def instrument(operation, key, options = T.unsafe(nil)); end
  def key_matcher(pattern, options); end
  def merged_options(call_options); end
  def namespace_key(key, options = T.unsafe(nil)); end
  def normalize_key(key, options = T.unsafe(nil)); end
  def normalize_version(key, options = T.unsafe(nil)); end
  def read_entry(key, **options); end
  def read_multi_entries(names, **options); end
  def save_block_result_to_cache(name, options); end
  def serialize_entry(entry); end
  def write_entry(key, entry, **options); end
  def write_multi_entries(hash, **options); end

  class << self
    def logger; end
    def logger=(val); end

    private

    def ensure_connection_pool_added!; end
    def retrieve_pool_options(options); end
  end
end

ActiveSupport::Cache::Store::DEFAULT_CODER = Marshal
module ActiveSupport::Cache::Strategy; end

module ActiveSupport::Cache::Strategy::LocalCache
  def cleanup(**options); end
  def clear(**options); end
  def decrement(name, amount = T.unsafe(nil), **options); end
  def delete_matched(matcher, options = T.unsafe(nil)); end
  def increment(name, amount = T.unsafe(nil), **options); end
  def middleware; end
  def with_local_cache; end

  private

  def bypass_local_cache; end
  def delete_entry(key, **options); end
  def local_cache; end
  def local_cache_key; end
  def read_entry(key, **options); end
  def read_multi_entries(keys, **options); end
  def use_temporary_local_cache(temporary_cache); end
  def write_cache_value(name, value, **options); end
  def write_entry(key, entry, **options); end
end

class ActiveSupport::Cache::Strategy::LocalCache::LocalCacheRegistry
  extend ::ActiveSupport::PerThreadRegistry

  def initialize; end

  def cache_for(local_cache_key); end
  def set_cache_for(local_cache_key, value); end

  class << self
    def cache_for(l); end
    def set_cache_for(l, v); end
  end
end

class ActiveSupport::Cache::Strategy::LocalCache::LocalStore < ::ActiveSupport::Cache::Store
  def initialize; end

  def clear(options = T.unsafe(nil)); end
  def delete_entry(key, **options); end
  def fetch_entry(key, options = T.unsafe(nil)); end
  def read_entry(key, **options); end
  def read_multi_entries(keys, **options); end
  def synchronize; end
  def write_entry(key, entry, **options); end
end

class ActiveSupport::Cache::Strategy::LocalCache::Middleware
  def initialize(name, local_cache_key); end

  def call(env); end
  def local_cache_key; end
  def name; end
  def new(app); end
end

ActiveSupport::Cache::UNIVERSAL_OPTIONS = T.let(T.unsafe(nil), Array)

class ActiveSupport::CachingKeyGenerator
  def initialize(key_generator); end

  def generate_key(*args); end
end

module ActiveSupport::Callbacks
  extend ::ActiveSupport::Concern

  mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods
  mixes_in_class_methods ::ActiveSupport::DescendantsTracker

  def run_callbacks(kind); end

  private

  def halted_callback_hook(filter, name); end
end

ActiveSupport::Callbacks::CALLBACK_FILTER_TYPES = T.let(T.unsafe(nil), Array)

class ActiveSupport::Callbacks::CallTemplate
  def initialize(target, method, arguments, block); end

  def expand(target, value, block); end
  def inverted_lambda; end
  def make_lambda; end

  class << self
    def build(filter, callback); end
  end
end

class ActiveSupport::Callbacks::Callback
  def initialize(name, filter, kind, options, chain_config); end

  def apply(callback_sequence); end
  def chain_config; end
  def current_scopes; end
  def duplicates?(other); end
  def filter; end
  def kind; end
  def kind=(_arg0); end
  def matches?(_kind, _filter); end
  def merge_conditional_options(chain, if_option:, unless_option:); end
  def name; end
  def name=(_arg0); end
  def raw_filter; end

  private

  def check_conditionals(conditionals); end
  def compute_identifier(filter); end
  def conditions_lambdas; end

  class << self
    def build(chain, filter, kind, options); end
  end
end

ActiveSupport::Callbacks::Callback::EMPTY_ARRAY = T.let(T.unsafe(nil), Array)

class ActiveSupport::Callbacks::CallbackChain
  include ::Enumerable

  def initialize(name, config); end

  def append(*callbacks); end
  def clear; end
  def compile; end
  def config; end
  def delete(o); end
  def each(&block); end
  def empty?; end
  def index(o); end
  def insert(index, o); end
  def name; end
  def prepend(*callbacks); end

  protected

  def chain; end

  private

  def append_one(callback); end
  def default_terminator; end
  def initialize_copy(other); end
  def prepend_one(callback); end
  def remove_duplicates(callback); end
end

class ActiveSupport::Callbacks::CallbackSequence
  def initialize(nested = T.unsafe(nil), call_template = T.unsafe(nil), user_conditions = T.unsafe(nil)); end

  def after(&after); end
  def around(call_template, user_conditions); end
  def before(&before); end
  def expand_call_template(arg, block); end
  def final?; end
  def invoke_after(arg); end
  def invoke_before(arg); end
  def nested; end
  def skip?(arg); end
end

module ActiveSupport::Callbacks::ClassMethods
  def __update_callbacks(name); end
  def define_callbacks(*names); end
  def normalize_callback_params(filters, block); end
  def reset_callbacks(name); end
  def set_callback(name, *filter_list, &block); end
  def skip_callback(name, *filter_list, &block); end

  protected

  def get_callbacks(name); end
  def set_callbacks(name, callbacks); end
end

module ActiveSupport::Callbacks::Conditionals; end

class ActiveSupport::Callbacks::Conditionals::Value
  def initialize(&block); end

  def call(target, value); end
end

module ActiveSupport::Callbacks::Filters; end

class ActiveSupport::Callbacks::Filters::After
  class << self
    def build(callback_sequence, user_callback, user_conditions, chain_config); end

    private

    def conditional(callback_sequence, user_callback, user_conditions); end
    def halting(callback_sequence, user_callback); end
    def halting_and_conditional(callback_sequence, user_callback, user_conditions); end
    def simple(callback_sequence, user_callback); end
  end
end

class ActiveSupport::Callbacks::Filters::Before
  class << self
    def build(callback_sequence, user_callback, user_conditions, chain_config, filter, name); end

    private

    def halting(callback_sequence, user_callback, halted_lambda, filter, name); end
    def halting_and_conditional(callback_sequence, user_callback, user_conditions, halted_lambda, filter, name); end
  end
end

class ActiveSupport::Callbacks::Filters::Environment < ::Struct
  def halted; end
  def halted=(_); end
  def target; end
  def target=(_); end
  def value; end
  def value=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def members; end
    def new(*_arg0); end
  end
end

module ActiveSupport::Concern
  def append_features(base); end
  def class_methods(&class_methods_module_definition); end
  def included(base = T.unsafe(nil), &block); end
  def prepend_features(base); end
  def prepended(base = T.unsafe(nil), &block); end

  class << self
    def extended(base); end
  end
end

class ActiveSupport::Concern::MultipleIncludedBlocks < ::StandardError
  def initialize; end
end

class ActiveSupport::Concern::MultiplePrependBlocks < ::StandardError
  def initialize; end
end

module ActiveSupport::Concurrency; end

class ActiveSupport::Concurrency::ShareLock
  include ::MonitorMixin

  def initialize; end

  def exclusive(purpose: T.unsafe(nil), compatible: T.unsafe(nil), after_compatible: T.unsafe(nil), no_wait: T.unsafe(nil)); end
  def raw_state; end
  def sharing; end
  def start_exclusive(purpose: T.unsafe(nil), compatible: T.unsafe(nil), no_wait: T.unsafe(nil)); end
  def start_sharing; end
  def stop_exclusive(compatible: T.unsafe(nil)); end
  def stop_sharing; end
  def yield_shares(purpose: T.unsafe(nil), compatible: T.unsafe(nil), block_share: T.unsafe(nil)); end

  private

  def busy_for_exclusive?(purpose); end
  def busy_for_sharing?(purpose); end
  def eligible_waiters?(compatible); end
  def wait_for(method); end
end

module ActiveSupport::Configurable
  extend ::ActiveSupport::Concern

  mixes_in_class_methods ::ActiveSupport::Configurable::ClassMethods

  def config; end
end

module ActiveSupport::Configurable::ClassMethods
  def config; end
  def configure; end

  private

  def config_accessor(*names, instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil)); end
end

class ActiveSupport::Configurable::Configuration < ::ActiveSupport::InheritableOptions
  def compile_methods!; end

  class << self
    def compile_methods!(keys); end
  end
end

class ActiveSupport::ConfigurationFile
  def initialize(content_path); end

  def parse(context: T.unsafe(nil), **options); end

  private

  def read(content_path); end
  def render(context); end

  class << self
    def parse(content_path, **options); end
  end
end

class ActiveSupport::ConfigurationFile::FormatError < ::StandardError; end

class ActiveSupport::CurrentAttributes
  include ::ActiveSupport::Callbacks
  extend ::ActiveSupport::Callbacks::ClassMethods
  extend ::ActiveSupport::DescendantsTracker

  def initialize; end

  def __callbacks; end
  def __callbacks?; end
  def _reset_callbacks; end
  def _run_reset_callbacks(&block); end
  def attributes; end
  def attributes=(_arg0); end
  def reset; end
  def set(set_attributes); end

  private

  def assign_attributes(new_attributes); end
  def compute_attributes(keys); end

  class << self
    def __callbacks; end
    def __callbacks=(value); end
    def __callbacks?; end
    def _reset_callbacks; end
    def _reset_callbacks=(value); end
    def after_reset(&block); end
    def attribute(*names); end
    def before_reset(&block); end
    def clear_all; end
    def instance; end
    def reset(*args, &block); end
    def reset_all; end
    def resets(&block); end
    def set(*args, &block); end

    private

    def current_instances; end
    def current_instances_key; end
    def generated_attribute_methods; end
    def method_missing(name, *args, &block); end
  end
end

module ActiveSupport::Dependencies
  extend ::ActiveSupport::Dependencies

  def _eager_load_paths; end
  def _eager_load_paths=(val); end
  def autoload_module!(into, const_name, qualified_name, path_suffix); end
  def autoload_once_paths; end
  def autoload_once_paths=(val); end
  def autoload_paths; end
  def autoload_paths=(val); end
  def autoloadable_module?(path_suffix); end
  def autoloaded?(desc); end
  def autoloaded_constants; end
  def autoloaded_constants=(val); end
  def clear; end
  def constant_watch_stack; end
  def constant_watch_stack=(val); end
  def constantize(name); end
  def depend_on(file_name, message = T.unsafe(nil)); end
  def explicitly_unloadable_constants; end
  def explicitly_unloadable_constants=(val); end
  def history; end
  def history=(val); end
  def hook!; end
  def interlock; end
  def interlock=(val); end
  def load?; end
  def load_file(path, const_paths = T.unsafe(nil)); end
  def load_missing_constant(from_mod, const_name); end
  def load_once_path?(path); end
  def loadable_constants_for_path(path, bases = T.unsafe(nil)); end
  def loaded; end
  def loaded=(val); end
  def loading; end
  def loading=(val); end
  def log(message); end
  def logger; end
  def logger=(val); end
  def mark_for_unload(const_desc); end
  def mechanism; end
  def mechanism=(val); end
  def new_constants_in(*descs); end
  def qualified_const_defined?(path); end
  def qualified_name_for(mod, name); end
  def reference(klass); end
  def remove_constant(const); end
  def remove_unloadable_constants!; end
  def require_or_load(file_name, const_path = T.unsafe(nil)); end
  def safe_constantize(name); end
  def search_for_file(path_suffix); end
  def to_constant_name(desc); end
  def unhook!; end
  def verbose; end
  def verbose=(val); end
  def warnings_on_first_load; end
  def warnings_on_first_load=(val); end
  def will_unload?(const_desc); end

  private

  def real_mod_name(mod); end
  def uninitialized_constant(qualified_name, const_name, receiver:); end

  class << self
    def _eager_load_paths; end
    def _eager_load_paths=(val); end
    def autoload_once_paths; end
    def autoload_once_paths=(val); end
    def autoload_paths; end
    def autoload_paths=(val); end
    def autoloaded_constants; end
    def autoloaded_constants=(val); end
    def constant_watch_stack; end
    def constant_watch_stack=(val); end
    def explicitly_unloadable_constants; end
    def explicitly_unloadable_constants=(val); end
    def history; end
    def history=(val); end
    def interlock; end
    def interlock=(val); end
    def load_interlock; end
    def loaded; end
    def loaded=(val); end
    def loading; end
    def loading=(val); end
    def logger; end
    def logger=(val); end
    def mechanism; end
    def mechanism=(val); end
    def run_interlock; end
    def unload_interlock; end
    def verbose; end
    def verbose=(val); end
    def warnings_on_first_load; end
    def warnings_on_first_load=(val); end
  end
end

module ActiveSupport::Dependencies::Blamable
  def blame_file!(file); end
  def blamed_files; end
  def copy_blame!(exc); end
  def describe_blame; end
end

class ActiveSupport::Dependencies::ClassCache
  def initialize; end

  def [](key); end
  def clear!; end
  def empty?; end
  def get(key); end
  def key?(key); end
  def safe_get(key); end
  def store(klass); end
end

class ActiveSupport::Dependencies::Interlock
  def initialize; end

  def done_running; end
  def done_unloading; end
  def loading; end
  def permit_concurrent_loads; end
  def raw_state(&block); end
  def running; end
  def start_running; end
  def start_unloading; end
  def unloading; end
end

module ActiveSupport::Dependencies::Loadable
  def load_dependency(file); end
  def require_dependency(file_name, message = T.unsafe(nil)); end
  def require_or_load(file_name); end
  def unloadable(const_desc); end

  private

  def load(file, wrap = T.unsafe(nil)); end
  def require(file); end

  class << self
    def exclude_from(base); end
    def include_into(base); end
  end
end

module ActiveSupport::Dependencies::ModuleConstMissing
  def const_missing(const_name); end
  def guess_for_anonymous(const_name); end
  def unloadable(const_desc = T.unsafe(nil)); end

  class << self
    def append_features(base); end
    def exclude_from(base); end
    def include_into(base); end
  end
end

ActiveSupport::Dependencies::Reference = T.let(T.unsafe(nil), ActiveSupport::Dependencies::ClassCache)
ActiveSupport::Dependencies::UNBOUND_METHOD_MODULE_NAME = T.let(T.unsafe(nil), UnboundMethod)

class ActiveSupport::Dependencies::WatchStack
  include ::Enumerable

  def initialize; end

  def each(&block); end
  def new_constants; end
  def watch_namespaces(namespaces); end
  def watching; end
  def watching?; end

  private

  def pop_modules(modules); end
end

class ActiveSupport::Deprecation
  include ::Singleton
  include ::ActiveSupport::Deprecation::InstanceDelegator
  include ::ActiveSupport::Deprecation::Behavior
  include ::ActiveSupport::Deprecation::Reporting
  include ::ActiveSupport::Deprecation::Disallowed
  include ::ActiveSupport::Deprecation::MethodWrapper
  extend ::Singleton::SingletonClassMethods
  extend ::ActiveSupport::Deprecation::InstanceDelegator::ClassMethods
  extend ::ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators

  def initialize(deprecation_horizon = T.unsafe(nil), gem_name = T.unsafe(nil)); end

  def deprecation_horizon; end
  def deprecation_horizon=(_arg0); end

  class << self
    def allow(*args, &block); end
    def behavior(*args, &block); end
    def behavior=(arg); end
    def debug(*args, &block); end
    def debug=(arg); end
    def deprecate_methods(*args, &block); end
    def deprecation_horizon(*args, &block); end
    def deprecation_horizon=(arg); end
    def disallowed_behavior(*args, &block); end
    def disallowed_behavior=(arg); end
    def disallowed_warnings(*args, &block); end
    def disallowed_warnings=(arg); end
    def gem_name(*args, &block); end
    def gem_name=(arg); end
    def instance; end
    def silence(*args, &block); end
    def silenced(*args, &block); end
    def silenced=(arg); end
  end
end

module ActiveSupport::Deprecation::Behavior
  def behavior; end
  def behavior=(behavior); end
  def debug; end
  def debug=(_arg0); end
  def disallowed_behavior; end
  def disallowed_behavior=(behavior); end

  private

  def arity_coerce(behavior); end
end

ActiveSupport::Deprecation::DEFAULT_BEHAVIORS = T.let(T.unsafe(nil), Hash)

module ActiveSupport::Deprecation::DeprecatedConstantAccessor
  class << self
    def included(base); end
  end
end

class ActiveSupport::Deprecation::DeprecatedConstantProxy < ::Module
  def initialize(old_const, new_const, deprecator = T.unsafe(nil), message: T.unsafe(nil)); end

  def class; end
  def hash(*args, &block); end
  def inspect; end
  def instance_methods(*args, &block); end
  def name(*args, &block); end
  def respond_to?(*args, &block); end

  private

  def const_missing(name); end
  def method_missing(called, *args, &block); end
  def target; end

  class << self
    def new(*args, **options, &block); end
  end
end

class ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy < ::ActiveSupport::Deprecation::DeprecationProxy
  def initialize(instance, method, var = T.unsafe(nil), deprecator = T.unsafe(nil)); end

  private

  def target; end
  def warn(callstack, called, args); end
end

class ActiveSupport::Deprecation::DeprecatedObjectProxy < ::ActiveSupport::Deprecation::DeprecationProxy
  def initialize(object, message, deprecator = T.unsafe(nil)); end

  private

  def target; end
  def warn(callstack, called, args); end
end

class ActiveSupport::Deprecation::DeprecationProxy
  def inspect; end

  private

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

  class << self
    def new(*args, &block); end
  end
end

module ActiveSupport::Deprecation::Disallowed
  def disallowed_warnings; end
  def disallowed_warnings=(_arg0); end

  private

  def deprecation_disallowed?(message); end
  def explicitly_allowed?(message); end
end

module ActiveSupport::Deprecation::InstanceDelegator
  mixes_in_class_methods ::ActiveSupport::Deprecation::InstanceDelegator::ClassMethods
  mixes_in_class_methods ::ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators

  class << self
    def included(base); end
  end
end

module ActiveSupport::Deprecation::InstanceDelegator::ClassMethods
  def include(included_module); end
  def method_added(method_name); end
end

module ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators
  def deprecation_warning(deprecated_method_name, message = T.unsafe(nil), caller_backtrace = T.unsafe(nil)); end
  def warn(message = T.unsafe(nil), callstack = T.unsafe(nil)); end
end

module ActiveSupport::Deprecation::MethodWrapper
  def deprecate_methods(target_module, *method_names); end
end

module ActiveSupport::Deprecation::Reporting
  def allow(allowed_warnings = T.unsafe(nil), if: T.unsafe(nil), &block); end
  def deprecation_warning(deprecated_method_name, message = T.unsafe(nil), caller_backtrace = T.unsafe(nil)); end
  def gem_name; end
  def gem_name=(_arg0); end
  def silence(&block); end
  def silenced; end
  def silenced=(_arg0); end
  def warn(message = T.unsafe(nil), callstack = T.unsafe(nil)); end

  private

  def _extract_callstack(callstack); end
  def deprecated_method_warning(method_name, message = T.unsafe(nil)); end
  def deprecation_caller_message(callstack); end
  def deprecation_message(callstack, message = T.unsafe(nil)); end
  def extract_callstack(callstack); end
  def ignored_callstack(path); end
end

ActiveSupport::Deprecation::Reporting::RAILS_GEM_ROOT = T.let(T.unsafe(nil), String)
class ActiveSupport::DeprecationException < ::StandardError; end

module ActiveSupport::DescendantsTracker
  def descendants; end
  def direct_descendants; end
  def inherited(base); end
  def subclasses; end

  class << self
    def clear; end
    def descendants(klass); end
    def direct_descendants(klass); end
    def store_inherited(klass, descendant); end
    def subclasses(klass); end

    private

    def accumulate_descendants(klass, acc); end
  end
end

class ActiveSupport::DescendantsTracker::DescendantsArray
  include ::Enumerable

  def initialize; end

  def <<(klass); end
  def cleanup!; end
  def each; end
  def refs_size; end
  def reject!; end

  private

  def initialize_copy(orig); end
end

class ActiveSupport::Digest
  class << self
    def hash_digest_class; end
    def hash_digest_class=(klass); end
    def hexdigest(arg); end
  end
end

class ActiveSupport::Duration
  def initialize(value, parts); end

  def %(other); end
  def *(other); end
  def +(other); end
  def +@; end
  def -(other); end
  def -@; end
  def /(other); end
  def <=>(other); end
  def ==(other); end
  def after(time = T.unsafe(nil)); end
  def ago(time = T.unsafe(nil)); end
  def as_json(options = T.unsafe(nil)); end
  def before(time = T.unsafe(nil)); end
  def coerce(other); end
  def encode_with(coder); end
  def eql?(other); end
  def from_now(time = T.unsafe(nil)); end
  def hash; end
  def in_days; end
  def in_hours; end
  def in_minutes; end
  def in_months; end
  def in_seconds; end
  def in_weeks; end
  def in_years; end
  def init_with(coder); end
  def inspect; end
  def instance_of?(klass); end
  def is_a?(klass); end
  def iso8601(precision: T.unsafe(nil)); end
  def kind_of?(klass); end
  def parts; end
  def parts=(_arg0); end
  def since(time = T.unsafe(nil)); end
  def to_i; end
  def to_s; end
  def until(time = T.unsafe(nil)); end
  def value; end
  def value=(_arg0); end

  private

  def method_missing(method, *args, &block); end
  def raise_type_error(other); end
  def respond_to_missing?(method, _); end
  def sum(sign, time = T.unsafe(nil)); end

  class << self
    def ===(other); end
    def build(value); end
    def days(value); end
    def hours(value); end
    def minutes(value); end
    def months(value); end
    def parse(iso8601duration); end
    def seconds(value); end
    def weeks(value); end
    def years(value); end

    private

    def calculate_total_seconds(parts); end
  end
end

class ActiveSupport::Duration::ISO8601Parser
  def initialize(string); end

  def mode; end
  def mode=(_arg0); end
  def parse!; end
  def parts; end
  def scanner; end
  def sign; end
  def sign=(_arg0); end

  private

  def finished?; end
  def number; end
  def raise_parsing_error(reason = T.unsafe(nil)); end
  def scan(pattern); end
  def validate!; end
end

ActiveSupport::Duration::ISO8601Parser::COMMA = T.let(T.unsafe(nil), String)
ActiveSupport::Duration::ISO8601Parser::DATE_COMPONENT = T.let(T.unsafe(nil), Regexp)
ActiveSupport::Duration::ISO8601Parser::DATE_COMPONENTS = T.let(T.unsafe(nil), Array)
ActiveSupport::Duration::ISO8601Parser::DATE_MARKER = T.let(T.unsafe(nil), Regexp)
ActiveSupport::Duration::ISO8601Parser::DATE_TO_PART = T.let(T.unsafe(nil), Hash)
ActiveSupport::Duration::ISO8601Parser::PERIOD = T.let(T.unsafe(nil), String)
ActiveSupport::Duration::ISO8601Parser::PERIOD_OR_COMMA = T.let(T.unsafe(nil), Regexp)
class ActiveSupport::Duration::ISO8601Parser::ParsingError < ::ArgumentError; end
ActiveSupport::Duration::ISO8601Parser::SIGN_MARKER = T.let(T.unsafe(nil), Regexp)
ActiveSupport::Duration::ISO8601Parser::TIME_COMPONENT = T.let(T.unsafe(nil), Regexp)
ActiveSupport::Duration::ISO8601Parser::TIME_COMPONENTS = T.let(T.unsafe(nil), Array)
ActiveSupport::Duration::ISO8601Parser::TIME_MARKER = T.let(T.unsafe(nil), Regexp)
ActiveSupport::Duration::ISO8601Parser::TIME_TO_PART = T.let(T.unsafe(nil), Hash)

class ActiveSupport::Duration::ISO8601Serializer
  def initialize(duration, precision: T.unsafe(nil)); end

  def serialize; end

  private

  def normalize; end
  def week_mixed_with_date?(parts); end
end

ActiveSupport::Duration::ISO8601Serializer::DATE_COMPONENTS = T.let(T.unsafe(nil), Array)
ActiveSupport::Duration::PARTS = T.let(T.unsafe(nil), Array)
ActiveSupport::Duration::PARTS_IN_SECONDS = T.let(T.unsafe(nil), Hash)
ActiveSupport::Duration::SECONDS_PER_DAY = T.let(T.unsafe(nil), Integer)
ActiveSupport::Duration::SECONDS_PER_HOUR = T.let(T.unsafe(nil), Integer)
ActiveSupport::Duration::SECONDS_PER_MINUTE = T.let(T.unsafe(nil), Integer)
ActiveSupport::Duration::SECONDS_PER_MONTH = T.let(T.unsafe(nil), Integer)
ActiveSupport::Duration::SECONDS_PER_WEEK = T.let(T.unsafe(nil), Integer)
ActiveSupport::Duration::SECONDS_PER_YEAR = T.let(T.unsafe(nil), Integer)

class ActiveSupport::Duration::Scalar < ::Numeric
  def initialize(value); end

  def %(other); end
  def *(other); end
  def +(other); end
  def -(other); end
  def -@; end
  def /(other); end
  def <=>(other); end
  def coerce(other); end
  def to_f(*args, &block); end
  def to_i(*args, &block); end
  def to_s(*args, &block); end
  def value; end

  private

  def calculate(op, other); end
  def raise_type_error(other); end
end

class ActiveSupport::EnvironmentInquirer < ::ActiveSupport::StringInquirer
  def initialize(env); end

  def development?; end
  def production?; end
  def test?; end
end

ActiveSupport::EnvironmentInquirer::DEFAULT_ENVIRONMENTS = T.let(T.unsafe(nil), Array)

class ActiveSupport::ExecutionWrapper
  include ::ActiveSupport::Callbacks
  extend ::ActiveSupport::Callbacks::ClassMethods
  extend ::ActiveSupport::DescendantsTracker

  def __callbacks; end
  def __callbacks?; end
  def _complete_callbacks; end
  def _run_callbacks; end
  def _run_complete_callbacks(&block); end
  def _run_run_callbacks(&block); end
  def complete!; end
  def run!; end

  private

  def hook_state; end

  class << self
    def __callbacks; end
    def __callbacks=(value); end
    def __callbacks?; end
    def _complete_callbacks; end
    def _complete_callbacks=(value); end
    def _run_callbacks; end
    def _run_callbacks=(value); end
    def active; end
    def active=(_arg0); end
    def active?; end
    def inherited(other); end
    def register_hook(hook, outer: T.unsafe(nil)); end
    def run!; end
    def to_complete(*args, &block); end
    def to_run(*args, &block); end
    def wrap; end
  end
end

class ActiveSupport::ExecutionWrapper::CompleteHook < ::Struct
  def after(target); end
  def before(target); end
  def hook; end
  def hook=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def members; end
    def new(*_arg0); end
  end
end

ActiveSupport::ExecutionWrapper::Null = T.let(T.unsafe(nil), Object)

class ActiveSupport::ExecutionWrapper::RunHook < ::Struct
  def before(target); end
  def hook; end
  def hook=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def members; end
    def new(*_arg0); end
  end
end

class ActiveSupport::Executor < ::ActiveSupport::ExecutionWrapper; end

class ActiveSupport::FileUpdateChecker
  def initialize(files, dirs = T.unsafe(nil), &block); end

  def execute; end
  def execute_if_updated; end
  def updated?; end

  private

  def compile_ext(array); end
  def compile_glob(hash); end
  def escape(key); end
  def max_mtime(paths); end
  def updated_at(paths); end
  def watched; end
end

module ActiveSupport::ForkTracker
  class << self
    def after_fork(&block); end
    def check!; end
    def hook!; end
    def unregister(callback); end
  end
end

module ActiveSupport::ForkTracker::CoreExt
  def fork(*_arg0); end
end

module ActiveSupport::ForkTracker::CoreExtPrivate
  private

  def fork(*_arg0); end
end

module ActiveSupport::Gzip
  class << self
    def compress(source, level = T.unsafe(nil), strategy = T.unsafe(nil)); end
    def decompress(source); end
  end
end

class ActiveSupport::Gzip::Stream < ::StringIO
  def initialize(*_arg0); end

  def close; end
end

module ActiveSupport::Inflector
  extend ::ActiveSupport::Inflector

  def camelize(term, uppercase_first_letter = T.unsafe(nil)); end
  def classify(table_name); end
  def constantize(camel_cased_word); end
  def dasherize(underscored_word); end
  def deconstantize(path); end
  def demodulize(path); end
  def foreign_key(class_name, separate_class_name_and_id_with_underscore = T.unsafe(nil)); end
  def humanize(lower_case_and_underscored_word, capitalize: T.unsafe(nil), keep_id_suffix: T.unsafe(nil)); end
  def inflections(locale = T.unsafe(nil)); end
  def ordinal(number); end
  def ordinalize(number); end
  def parameterize(string, separator: T.unsafe(nil), preserve_case: T.unsafe(nil), locale: T.unsafe(nil)); end
  def pluralize(word, locale = T.unsafe(nil)); end
  def safe_constantize(camel_cased_word); end
  def singularize(word, locale = T.unsafe(nil)); end
  def tableize(class_name); end
  def titleize(word, keep_id_suffix: T.unsafe(nil)); end
  def transliterate(string, replacement = T.unsafe(nil), locale: T.unsafe(nil)); end
  def underscore(camel_cased_word); end
  def upcase_first(string); end

  private

  def apply_inflections(word, rules, locale = T.unsafe(nil)); end
  def const_regexp(camel_cased_word); end
end

ActiveSupport::Inflector::ALLOWED_ENCODINGS_FOR_TRANSLITERATE = T.let(T.unsafe(nil), Array)

class ActiveSupport::Inflector::Inflections
  def initialize; end

  def acronym(word); end
  def acronyms; end
  def acronyms_camelize_regex; end
  def acronyms_underscore_regex; end
  def clear(scope = T.unsafe(nil)); end
  def human(rule, replacement); end
  def humans; end
  def irregular(singular, plural); end
  def plural(rule, replacement); end
  def plurals; end
  def singular(rule, replacement); end
  def singulars; end
  def uncountable(*words); end
  def uncountables; end

  private

  def define_acronym_regex_patterns; end
  def initialize_dup(orig); end

  class << self
    def instance(locale = T.unsafe(nil)); end
  end
end

class ActiveSupport::Inflector::Inflections::Uncountables < ::Array
  def initialize; end

  def <<(*word); end
  def add(words); end
  def delete(entry); end
  def uncountable?(str); end

  private

  def to_regex(string); end
end

class ActiveSupport::InheritableOptions < ::ActiveSupport::OrderedOptions
  def initialize(parent = T.unsafe(nil)); end

  def inheritable_copy; end
end

module ActiveSupport::JSON
  class << self
    def decode(json); end
    def encode(value, options = T.unsafe(nil)); end
    def parse_error; end

    private

    def convert_dates_from(data); end
  end
end

ActiveSupport::JSON::DATETIME_REGEX = T.let(T.unsafe(nil), Regexp)
ActiveSupport::JSON::DATE_REGEX = T.let(T.unsafe(nil), Regexp)

module ActiveSupport::JSON::Encoding
  class << self
    def escape_html_entities_in_json; end
    def escape_html_entities_in_json=(_arg0); end
    def json_encoder; end
    def json_encoder=(_arg0); end
    def time_precision; end
    def time_precision=(_arg0); end
    def use_standard_json_time_format; end
    def use_standard_json_time_format=(_arg0); end
  end
end

class ActiveSupport::JSON::Encoding::JSONGemEncoder
  def initialize(options = T.unsafe(nil)); end

  def encode(value); end
  def options; end

  private

  def jsonify(value); end
  def stringify(jsonified); end
end

ActiveSupport::JSON::Encoding::JSONGemEncoder::ESCAPED_CHARS = T.let(T.unsafe(nil), Hash)
ActiveSupport::JSON::Encoding::JSONGemEncoder::ESCAPE_REGEX_WITHOUT_HTML_ENTITIES = T.let(T.unsafe(nil), Regexp)
ActiveSupport::JSON::Encoding::JSONGemEncoder::ESCAPE_REGEX_WITH_HTML_ENTITIES = T.let(T.unsafe(nil), Regexp)

class ActiveSupport::JSON::Encoding::JSONGemEncoder::EscapedString < ::String
  def to_json(*_arg0); end
  def to_s; end
end

class ActiveSupport::KeyGenerator
  def initialize(secret, options = T.unsafe(nil)); end

  def generate_key(salt, key_size = T.unsafe(nil)); end
end

module ActiveSupport::LazyLoadHooks
  def on_load(name, options = T.unsafe(nil), &block); end
  def run_load_hooks(name, base = T.unsafe(nil)); end

  private

  def execute_hook(name, base, options, block); end
  def with_execution_control(name, block, once); end

  class << self
    def extended(base); end
  end
end

class ActiveSupport::LogSubscriber < ::ActiveSupport::Subscriber
  def colorize_logging; end
  def colorize_logging=(val); end
  def debug(progname = T.unsafe(nil), &block); end
  def error(progname = T.unsafe(nil), &block); end
  def fatal(progname = T.unsafe(nil), &block); end
  def finish(name, id, payload); end
  def info(progname = T.unsafe(nil), &block); end
  def logger; end
  def start(name, id, payload); end
  def unknown(progname = T.unsafe(nil), &block); end
  def warn(progname = T.unsafe(nil), &block); end

  private

  def color(text, color, bold = T.unsafe(nil)); end

  class << self
    def colorize_logging; end
    def colorize_logging=(val); end
    def flush_all!; end
    def log_subscribers; end
    def logger; end
    def logger=(_arg0); end

    private

    def fetch_public_methods(subscriber, inherit_all); end
  end
end

ActiveSupport::LogSubscriber::BLACK = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::BLUE = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::BOLD = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::CLEAR = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::CYAN = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::GREEN = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::MAGENTA = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::RED = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::WHITE = T.let(T.unsafe(nil), String)
ActiveSupport::LogSubscriber::YELLOW = T.let(T.unsafe(nil), String)

class ActiveSupport::Logger < ::Logger
  include ::ActiveSupport::LoggerSilence
  include ::ActiveSupport::LoggerThreadSafeLevel

  def initialize(*args, **kwargs); end

  def silencer; end
  def silencer=(val); end

  class << self
    def broadcast(logger); end
    def local_levels; end
    def local_levels=(val); end
    def logger_outputs_to?(logger, *sources); end
    def silencer; end
    def silencer=(val); end
  end
end

class ActiveSupport::Logger::SimpleFormatter < ::Logger::Formatter
  def call(severity, timestamp, progname, msg); end
end

module ActiveSupport::LoggerSilence
  extend ::ActiveSupport::Concern
  include ::ActiveSupport::LoggerThreadSafeLevel

  def silence(severity = T.unsafe(nil)); end
end

module ActiveSupport::LoggerThreadSafeLevel
  extend ::ActiveSupport::Concern

  def add(severity, message = T.unsafe(nil), progname = T.unsafe(nil), &block); end
  def debug?; end
  def error?; end
  def fatal?; end
  def info?; end
  def level; end
  def local_level; end
  def local_level=(level); end
  def local_log_id; end
  def log_at(level); end
  def unknown?; end
  def warn?; end
end

module ActiveSupport::MarshalWithAutoloading
  def load(source, proc = T.unsafe(nil)); end
end

class ActiveSupport::MessageEncryptor
  include ::ActiveSupport::Messages::Rotator
  include ::ActiveSupport::Messages::Rotator::Encryptor

  def encrypt_and_sign(value, expires_at: T.unsafe(nil), expires_in: T.unsafe(nil), purpose: T.unsafe(nil)); end

  private

  def _decrypt(encrypted_message, purpose); end
  def _encrypt(value, **metadata_options); end
  def aead_mode?; end
  def new_cipher; end
  def resolve_verifier; end
  def verifier; end

  class << self
    def default_cipher; end
    def key_len(cipher = T.unsafe(nil)); end
    def use_authenticated_message_encryption; end
    def use_authenticated_message_encryption=(val); end
  end
end

class ActiveSupport::MessageEncryptor::InvalidMessage < ::StandardError; end

module ActiveSupport::MessageEncryptor::NullSerializer
  class << self
    def dump(value); end
    def load(value); end
  end
end

module ActiveSupport::MessageEncryptor::NullVerifier
  class << self
    def generate(value); end
    def verify(value); end
  end
end

ActiveSupport::MessageEncryptor::OpenSSLCipherError = OpenSSL::Cipher::CipherError

class ActiveSupport::MessageVerifier
  include ::ActiveSupport::Messages::Rotator
  include ::ActiveSupport::Messages::Rotator::Verifier

  def generate(value, expires_at: T.unsafe(nil), expires_in: T.unsafe(nil), purpose: T.unsafe(nil)); end
  def valid_message?(signed_message); end
  def verify(*args, **options); end

  private

  def decode(data); end
  def encode(data); end
  def generate_digest(data); end
end

class ActiveSupport::MessageVerifier::InvalidSignature < ::StandardError; end
module ActiveSupport::Messages; end

class ActiveSupport::Messages::Metadata
  def initialize(message, expires_at = T.unsafe(nil), purpose = T.unsafe(nil)); end

  def as_json(options = T.unsafe(nil)); end
  def verify(purpose); end

  private

  def fresh?; end
  def match?(purpose); end
  def parse_expires_at(expires_at); end

  class << self
    def verify(message, purpose); end
    def wrap(message, expires_at: T.unsafe(nil), expires_in: T.unsafe(nil), purpose: T.unsafe(nil)); end

    private

    def decode(message); end
    def encode(message); end
    def extract_metadata(message); end
    def pick_expiry(expires_at, expires_in); end
  end
end

module ActiveSupport::Messages::Rotator
  def initialize(*secrets, on_rotation: T.unsafe(nil), **options); end

  def rotate(*secrets, **options); end

  private

  def run_rotations(on_rotation); end
end

module ActiveSupport::Messages::Rotator::Encryptor
  include ::ActiveSupport::Messages::Rotator

  def decrypt_and_verify(*args, on_rotation: T.unsafe(nil), **options); end

  private

  def build_rotation(secret = T.unsafe(nil), sign_secret = T.unsafe(nil), options); end
end

module ActiveSupport::Messages::Rotator::Verifier
  include ::ActiveSupport::Messages::Rotator

  def verified(*args, on_rotation: T.unsafe(nil), **options); end

  private

  def build_rotation(secret = T.unsafe(nil), options); end
end

module ActiveSupport::Multibyte
  class << self
    def proxy_class; end
    def proxy_class=(klass); end
  end
end

class ActiveSupport::Multibyte::Chars
  include ::Comparable

  def initialize(string); end

  def <=>(*args, &block); end
  def =~(*args, &block); end
  def acts_like_string?(*args, &block); end
  def as_json(options = T.unsafe(nil)); end
  def compose; end
  def decompose; end
  def grapheme_length; end
  def limit(limit); end
  def match?(*args, &block); end
  def method_missing(method, *args, &block); end
  def reverse; end
  def reverse!(*args); end
  def slice!(*args); end
  def split(*args); end
  def tidy_bytes(force = T.unsafe(nil)); end
  def tidy_bytes!(*args); end
  def titlecase; end
  def titleize; end
  def to_s; end
  def to_str; end
  def wrapped_string; end

  private

  def chars(string); end
  def respond_to_missing?(method, include_private); end
end

module ActiveSupport::Multibyte::Unicode
  extend ::ActiveSupport::Multibyte::Unicode

  def compose(codepoints); end
  def decompose(type, codepoints); end
  def default_normalization_form; end
  def default_normalization_form=(_); end
  def tidy_bytes(string, force = T.unsafe(nil)); end

  private

  def recode_windows1252_chars(string); end
end

ActiveSupport::Multibyte::Unicode::UNICODE_VERSION = T.let(T.unsafe(nil), String)

module ActiveSupport::Notifications
  class << self
    def instrument(name, payload = T.unsafe(nil)); end
    def instrumenter; end
    def monotonic_subscribe(pattern = T.unsafe(nil), callback = T.unsafe(nil), &block); end
    def notifier; end
    def notifier=(_arg0); end
    def publish(name, *args); end
    def subscribe(pattern = T.unsafe(nil), callback = T.unsafe(nil), &block); end
    def subscribed(callback, pattern = T.unsafe(nil), monotonic: T.unsafe(nil), &block); end
    def unsubscribe(subscriber_or_name); end
  end
end

class ActiveSupport::Notifications::Event
  def initialize(name, start, ending, transaction_id, payload); end

  def <<(event); end
  def allocations; end
  def children; end
  def cpu_time; end
  def duration; end
  def end; end
  def finish!; end
  def idle_time; end
  def name; end
  def parent_of?(event); end
  def payload; end
  def payload=(_arg0); end
  def start!; end
  def time; end
  def transaction_id; end

  private

  def now; end
  def now_allocations; end
  def now_cpu; end
end

class ActiveSupport::Notifications::Fanout
  include ::Mutex_m

  def initialize; end

  def finish(name, id, payload, listeners = T.unsafe(nil)); end
  def listeners_for(name); end
  def listening?(name); end
  def lock; end
  def locked?; end
  def publish(name, *args); end
  def start(name, id, payload); end
  def subscribe(pattern = T.unsafe(nil), callable = T.unsafe(nil), monotonic: T.unsafe(nil), &block); end
  def synchronize(&block); end
  def try_lock; end
  def unlock; end
  def unsubscribe(subscriber_or_name); end
  def wait; end
end

module ActiveSupport::Notifications::Fanout::Subscribers
  class << self
    def new(pattern, listener, monotonic); end
    def wrap_all(pattern, subscriber); end
  end
end

class ActiveSupport::Notifications::Fanout::Subscribers::AllMessages
  def initialize(delegate); end

  def finish(name, id, payload); end
  def matches?(_arg0); end
  def publish(name, *args); end
  def start(name, id, payload); end
  def subscribed_to?(name); end
  def unsubscribe!(*_arg0); end
end

class ActiveSupport::Notifications::Fanout::Subscribers::EventObject < ::ActiveSupport::Notifications::Fanout::Subscribers::Evented
  def finish(name, id, payload); end
  def start(name, id, payload); end

  private

  def build_event(name, id, payload); end
end

class ActiveSupport::Notifications::Fanout::Subscribers::Evented
  def initialize(pattern, delegate); end

  def finish(name, id, payload); end
  def matches?(name); end
  def pattern; end
  def publish(name, *args); end
  def start(name, id, payload); end
  def subscribed_to?(name); end
  def unsubscribe!(name); end
end

class ActiveSupport::Notifications::Fanout::Subscribers::Matcher
  def initialize(pattern); end

  def ===(name); end
  def exclusions; end
  def pattern; end
  def unsubscribe!(name); end

  class << self
    def wrap(pattern); end
  end
end

class ActiveSupport::Notifications::Fanout::Subscribers::MonotonicTimed < ::ActiveSupport::Notifications::Fanout::Subscribers::Evented
  def finish(name, id, payload); end
  def publish(name, *args); end
  def start(name, id, payload); end
end

class ActiveSupport::Notifications::Fanout::Subscribers::Timed < ::ActiveSupport::Notifications::Fanout::Subscribers::Evented
  def finish(name, id, payload); end
  def publish(name, *args); end
  def start(name, id, payload); end
end

class ActiveSupport::Notifications::InstrumentationRegistry
  extend ::ActiveSupport::PerThreadRegistry

  def initialize; end

  def instrumenter_for(notifier); end
end

class ActiveSupport::Notifications::Instrumenter
  def initialize(notifier); end

  def finish(name, payload); end
  def finish_with_state(listeners_state, name, payload); end
  def id; end
  def instrument(name, payload = T.unsafe(nil)); end
  def start(name, payload); end

  private

  def unique_id; end
end

module ActiveSupport::NumberHelper
  extend ::ActiveSupport::Autoload
  extend ::ActiveSupport::NumberHelper

  def number_to_currency(number, options = T.unsafe(nil)); end
  def number_to_delimited(number, options = T.unsafe(nil)); end
  def number_to_human(number, options = T.unsafe(nil)); end
  def number_to_human_size(number, options = T.unsafe(nil)); end
  def number_to_percentage(number, options = T.unsafe(nil)); end
  def number_to_phone(number, options = T.unsafe(nil)); end
  def number_to_rounded(number, options = T.unsafe(nil)); end
end

class ActiveSupport::NumberHelper::NumberConverter
  def initialize(number, options); end

  def execute; end
  def namespace; end
  def namespace=(_arg0); end
  def namespace?; end
  def number; end
  def opts; end
  def validate_float; end
  def validate_float=(_arg0); end
  def validate_float?; end

  private

  def default_format_options; end
  def default_value(key); end
  def format_options; end
  def i18n_format_options; end
  def options; end
  def translate_in_locale(key, **i18n_options); end
  def translate_number_value_with_default(key, **i18n_options); end
  def valid_float?; end

  class << self
    def convert(number, options); end
    def namespace; end
    def namespace=(value); end
    def namespace?; end
    def validate_float; end
    def validate_float=(value); end
    def validate_float?; end
  end
end

ActiveSupport::NumberHelper::NumberConverter::DEFAULTS = T.let(T.unsafe(nil), Hash)

class ActiveSupport::NumberHelper::NumberToCurrencyConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  private

  def i18n_opts; end
  def options; end

  class << self
    def namespace; end
  end
end

class ActiveSupport::NumberHelper::NumberToDelimitedConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  private

  def delimiter_pattern; end
  def parts; end

  class << self
    def validate_float; end
  end
end

ActiveSupport::NumberHelper::NumberToDelimitedConverter::DEFAULT_DELIMITER_REGEX = T.let(T.unsafe(nil), Regexp)

class ActiveSupport::NumberHelper::NumberToHumanConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  private

  def calculate_exponent(units); end
  def determine_unit(units, exponent); end
  def format; end
  def unit_exponents(units); end

  class << self
    def namespace; end
    def validate_float; end
  end
end

ActiveSupport::NumberHelper::NumberToHumanConverter::DECIMAL_UNITS = T.let(T.unsafe(nil), Hash)
ActiveSupport::NumberHelper::NumberToHumanConverter::INVERTED_DECIMAL_UNITS = T.let(T.unsafe(nil), Hash)

class ActiveSupport::NumberHelper::NumberToHumanSizeConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  private

  def base; end
  def conversion_format; end
  def exponent; end
  def smaller_than_base?; end
  def storage_unit_key; end
  def unit; end

  class << self
    def namespace; end
    def validate_float; end
  end
end

ActiveSupport::NumberHelper::NumberToHumanSizeConverter::STORAGE_UNITS = T.let(T.unsafe(nil), Array)

class ActiveSupport::NumberHelper::NumberToPercentageConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  class << self
    def namespace; end
  end
end

class ActiveSupport::NumberHelper::NumberToPhoneConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  private

  def convert_to_phone_number(number); end
  def convert_with_area_code(number); end
  def convert_without_area_code(number); end
  def country_code(code); end
  def delimiter; end
  def phone_ext(ext); end
  def regexp_pattern(default_pattern); end
  def start_with_delimiter?(number); end
end

class ActiveSupport::NumberHelper::NumberToRoundedConverter < ::ActiveSupport::NumberHelper::NumberConverter
  def convert; end

  private

  def format_number(number); end
  def strip_insignificant_zeros; end

  class << self
    def namespace; end
    def validate_float; end
  end
end

class ActiveSupport::NumberHelper::RoundingHelper
  def initialize(options); end

  def digit_count(number); end
  def options; end
  def round(number); end

  private

  def absolute_precision(number); end
  def convert_to_decimal(number); end
  def significant; end
end

class ActiveSupport::OptionMerger
  def initialize(context, options); end

  private

  def invoke_method(method, arguments, options, &block); end
  def method_missing(method, *arguments, &block); end
end

class ActiveSupport::OrderedHash < ::Hash
  def encode_with(coder); end
  def extractable_options?; end
  def nested_under_indifferent_access; end
  def reject(*args, &block); end
  def select(*args, &block); end
  def to_yaml_type; end
end

class ActiveSupport::OrderedOptions < ::Hash
  def [](key); end
  def []=(key, value); end
  def extractable_options?; end
  def inspect; end
  def method_missing(name, *args); end

  protected

  def _get(_arg0); end

  private

  def respond_to_missing?(name, include_private); end
end

module ActiveSupport::PerThreadRegistry
  def instance; end

  private

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

  class << self
    def extended(object); end
  end
end

class ActiveSupport::ProxyObject < ::BasicObject
  def raise(*args); end
end

class ActiveSupport::Reloader < ::ActiveSupport::ExecutionWrapper
  def initialize; end

  def _class_unload_callbacks; end
  def _prepare_callbacks; end
  def _run_class_unload_callbacks(&block); end
  def _run_prepare_callbacks(&block); end
  def check; end
  def check=(_arg0); end
  def check?; end
  def class_unload!(&block); end
  def complete!; end
  def executor; end
  def executor=(_arg0); end
  def executor?; end
  def release_unload_lock!; end
  def require_unload_lock!; end
  def run!; end

  class << self
    def __callbacks; end
    def _class_unload_callbacks; end
    def _class_unload_callbacks=(value); end
    def _prepare_callbacks; end
    def _prepare_callbacks=(value); end
    def after_class_unload(*args, &block); end
    def before_class_unload(*args, &block); end
    def check; end
    def check!; end
    def check=(value); end
    def check?; end
    def executor; end
    def executor=(value); end
    def executor?; end
    def prepare!; end
    def reload!; end
    def reloaded!; end
    def run!; end
    def to_prepare(*args, &block); end
    def wrap; end
  end
end

module ActiveSupport::Rescuable
  extend ::ActiveSupport::Concern

  mixes_in_class_methods ::ActiveSupport::Rescuable::ClassMethods

  def handler_for_rescue(exception); end
  def rescue_with_handler(exception); end
end

module ActiveSupport::Rescuable::ClassMethods
  def handler_for_rescue(exception, object: T.unsafe(nil)); end
  def rescue_from(*klasses, with: T.unsafe(nil), &block); end
  def rescue_with_handler(exception, object: T.unsafe(nil), visited_exceptions: T.unsafe(nil)); end

  private

  def constantize_rescue_handler_class(class_or_name); end
  def find_rescue_handler(exception); end
end

class ActiveSupport::SafeBuffer < ::String
  def initialize(str = T.unsafe(nil)); end

  def %(args); end
  def *(*_arg0); end
  def +(other); end
  def <<(value); end
  def [](*args); end
  def []=(*args); end
  def capitalize(*args, &block); end
  def capitalize!(*args); end
  def chomp(*args, &block); end
  def chomp!(*args); end
  def chop(*args, &block); end
  def chop!(*args); end
  def clone_empty; end
  def concat(value); end
  def delete(*args, &block); end
  def delete!(*args); end
  def delete_prefix(*args, &block); end
  def delete_prefix!(*args); end
  def delete_suffix(*args, &block); end
  def delete_suffix!(*args); end
  def downcase(*args, &block); end
  def downcase!(*args); end
  def encode_with(coder); end
  def gsub(*args, &block); end
  def gsub!(*args, &block); end
  def html_safe?; end
  def insert(index, value); end
  def lstrip(*args, &block); end
  def lstrip!(*args); end
  def next(*args, &block); end
  def next!(*args); end
  def prepend(value); end
  def replace(value); end
  def reverse(*args, &block); end
  def reverse!(*args); end
  def rstrip(*args, &block); end
  def rstrip!(*args); end
  def safe_concat(value); end
  def scrub(*args, &block); end
  def scrub!(*args); end
  def slice(*args, &block); end
  def slice!(*args); end
  def squeeze(*args, &block); end
  def squeeze!(*args); end
  def strip(*args, &block); end
  def strip!(*args); end
  def sub(*args, &block); end
  def sub!(*args, &block); end
  def succ(*args, &block); end
  def succ!(*args); end
  def swapcase(*args, &block); end
  def swapcase!(*args); end
  def to_param; end
  def to_s; end
  def tr(*args, &block); end
  def tr!(*args); end
  def tr_s(*args, &block); end
  def tr_s!(*args); end
  def unicode_normalize(*args, &block); end
  def unicode_normalize!(*args); end
  def upcase(*args, &block); end
  def upcase!(*args); end

  private

  def html_escape_interpolated_argument(arg); end
  def initialize_copy(other); end
  def original_concat(*_arg0); end
  def set_block_back_references(block, match_data); end
end

class ActiveSupport::SafeBuffer::SafeConcatError < ::StandardError
  def initialize; end
end

ActiveSupport::SafeBuffer::UNSAFE_STRING_METHODS = T.let(T.unsafe(nil), Array)
ActiveSupport::SafeBuffer::UNSAFE_STRING_METHODS_WITH_BACKREF = T.let(T.unsafe(nil), Array)

class ActiveSupport::SecureCompareRotator
  include ::ActiveSupport::Messages::Rotator
  include ::ActiveSupport::SecurityUtils

  def secure_compare!(other_value, on_rotation: T.unsafe(nil)); end

  private

  def build_rotation(previous_value, _options); end
end

class ActiveSupport::SecureCompareRotator::InvalidMatch < ::StandardError; end

module ActiveSupport::SecurityUtils
  private

  def fixed_length_secure_compare(a, b); end
  def secure_compare(a, b); end

  class << self
    def fixed_length_secure_compare(a, b); end
    def secure_compare(a, b); end
  end
end

class ActiveSupport::StringInquirer < ::String
  private

  def method_missing(method_name, *arguments); end
  def respond_to_missing?(method_name, include_private = T.unsafe(nil)); end
end

class ActiveSupport::Subscriber
  def initialize; end

  def finish(name, id, payload); end
  def patterns; end
  def start(name, id, payload); end

  private

  def event_stack; end

  class << self
    def attach_to(namespace, subscriber = T.unsafe(nil), notifier = T.unsafe(nil), inherit_all: T.unsafe(nil)); end
    def detach_from(namespace, notifier = T.unsafe(nil)); end
    def method_added(event); end
    def subscribers; end

    private

    def add_event_subscriber(event); end
    def fetch_public_methods(subscriber, inherit_all); end
    def find_attached_subscriber; end
    def invalid_event?(event); end
    def namespace; end
    def notifier; end
    def pattern_subscribed?(pattern); end
    def prepare_pattern(event); end
    def remove_event_subscriber(event); end
    def subscriber; end
  end
end

class ActiveSupport::SubscriberQueueRegistry
  extend ::ActiveSupport::PerThreadRegistry

  def initialize; end

  def get_queue(queue_key); end
end

module ActiveSupport::TaggedLogging
  def clear_tags!(*args, &block); end
  def flush; end
  def pop_tags(*args, &block); end
  def push_tags(*args, &block); end
  def tagged(*tags); end

  class << self
    def new(logger); end
  end
end

module ActiveSupport::TaggedLogging::Formatter
  def call(severity, timestamp, progname, msg); end
  def clear_tags!; end
  def current_tags; end
  def pop_tags(size = T.unsafe(nil)); end
  def push_tags(*tags); end
  def tagged(*tags); end
  def tags_text; end
end

module ActiveSupport::TaggedLogging::LocalTagStorage
  def current_tags; end
  def current_tags=(_arg0); end

  class << self
    def extended(base); end
  end
end

class ActiveSupport::TestCase < ::Minitest::Test
  include ::ActiveSupport::Testing::SetupAndTeardown
  include ::ActiveSupport::Testing::TaggedLogging
  include ::ActiveSupport::Callbacks
  include ::ActiveSupport::Testing::Assertions
  include ::ActiveSupport::Testing::Deprecation
  include ::ActiveSupport::Testing::TimeHelpers
  include ::ActiveSupport::Testing::FileFixtures
  extend ::ActiveSupport::Callbacks::ClassMethods
  extend ::ActiveSupport::DescendantsTracker
  extend ::ActiveSupport::Testing::SetupAndTeardown::ClassMethods
  extend ::ActiveSupport::Testing::Declarative

  def __callbacks; end
  def __callbacks?; end
  def _run_setup_callbacks(&block); end
  def _run_teardown_callbacks(&block); end
  def _setup_callbacks; end
  def _teardown_callbacks; end
  def assert_no_match(matcher, obj, msg = T.unsafe(nil)); end
  def assert_not_empty(obj, msg = T.unsafe(nil)); end
  def assert_not_equal(exp, act, msg = T.unsafe(nil)); end
  def assert_not_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end
  def assert_not_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end
  def assert_not_includes(collection, obj, msg = T.unsafe(nil)); end
  def assert_not_instance_of(cls, obj, msg = T.unsafe(nil)); end
  def assert_not_kind_of(cls, obj, msg = T.unsafe(nil)); end
  def assert_not_nil(obj, msg = T.unsafe(nil)); end
  def assert_not_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end
  def assert_not_predicate(o1, op, msg = T.unsafe(nil)); end
  def assert_not_respond_to(obj, meth, msg = T.unsafe(nil)); end
  def assert_not_same(exp, act, msg = T.unsafe(nil)); end
  def assert_raise(*exp); end
  def file_fixture_path; end
  def file_fixture_path?; end
  def method_name; end

  class << self
    def __callbacks; end
    def __callbacks=(value); end
    def __callbacks?; end
    def _setup_callbacks; end
    def _setup_callbacks=(value); end
    def _teardown_callbacks; end
    def _teardown_callbacks=(value); end
    def file_fixture_path; end
    def file_fixture_path=(value); end
    def file_fixture_path?; end
    def parallelize(workers: T.unsafe(nil), with: T.unsafe(nil)); end
    def parallelize_setup(&block); end
    def parallelize_teardown(&block); end
    def test_order; end
    def test_order=(new_order); end
  end
end

ActiveSupport::TestCase::Assertion = Minitest::Assertion
module ActiveSupport::Testing; end

module ActiveSupport::Testing::Assertions
  def assert_changes(expression, message = T.unsafe(nil), from: T.unsafe(nil), to: T.unsafe(nil), &block); end
  def assert_difference(expression, *args, &block); end
  def assert_no_changes(expression, message = T.unsafe(nil), &block); end
  def assert_no_difference(expression, message = T.unsafe(nil), &block); end
  def assert_not(object, message = T.unsafe(nil)); end
  def assert_nothing_raised; end
end

ActiveSupport::Testing::Assertions::UNTRACKED = T.let(T.unsafe(nil), Object)

module ActiveSupport::Testing::ConstantLookup
  extend ::ActiveSupport::Concern

  mixes_in_class_methods ::ActiveSupport::Testing::ConstantLookup::ClassMethods
end

module ActiveSupport::Testing::ConstantLookup::ClassMethods
  def determine_constant_from_test_name(test_name); end
end

module ActiveSupport::Testing::Declarative
  def test(name, &block); end
end

module ActiveSupport::Testing::Deprecation
  def assert_deprecated(match = T.unsafe(nil), deprecator = T.unsafe(nil), &block); end
  def assert_not_deprecated(deprecator = T.unsafe(nil), &block); end
  def collect_deprecations(deprecator = T.unsafe(nil)); end
end

module ActiveSupport::Testing::FileFixtures
  extend ::ActiveSupport::Concern

  def file_fixture(fixture_name); end
end

module ActiveSupport::Testing::Isolation
  include ::ActiveSupport::Testing::Isolation::Forking

  def run; end

  class << self
    def forking_env?; end
    def included(klass); end
  end
end

module ActiveSupport::Testing::Isolation::Forking
  def run_in_isolation(&blk); end
end

module ActiveSupport::Testing::Isolation::Subprocess
  def run_in_isolation(&blk); end
end

ActiveSupport::Testing::Isolation::Subprocess::ORIG_ARGV = T.let(T.unsafe(nil), Array)

class ActiveSupport::Testing::Parallelization
  def initialize(worker_count); end

  def <<(work); end
  def after_fork_hooks; end
  def run_cleanup_hooks; end
  def shutdown; end
  def start; end

  class << self
    def after_fork_hook(&blk); end
    def after_fork_hooks; end
    def run_cleanup_hook(&blk); end
    def run_cleanup_hooks; end
  end
end

class ActiveSupport::Testing::Parallelization::Server
  include ::DRb::DRbUndumped

  def initialize; end

  def <<(o); end
  def active_workers?; end
  def pop; end
  def record(reporter, result); end
  def shutdown; end
  def start_worker(worker_id); end
  def stop_worker(worker_id); end
end

class ActiveSupport::Testing::Parallelization::Worker
  def initialize(number, url); end

  def after_fork; end
  def perform_job(job); end
  def run_cleanup; end
  def safe_record(reporter, result); end
  def start; end
  def work_from_queue; end

  private

  def add_setup_exception(result); end
  def set_process_title(status); end
end

module ActiveSupport::Testing::SetupAndTeardown
  def after_teardown; end
  def before_setup; end

  class << self
    def prepended(klass); end
  end
end

module ActiveSupport::Testing::SetupAndTeardown::ClassMethods
  def setup(*args, &block); end
  def teardown(*args, &block); end
end

class ActiveSupport::Testing::SimpleStubs
  def initialize; end

  def stub_object(object, method_name, &block); end
  def stubbed?; end
  def stubbing(object, method_name); end
  def unstub_all!; end

  private

  def unstub_object(stub); end
end

class ActiveSupport::Testing::SimpleStubs::Stub < ::Struct
  def method_name; end
  def method_name=(_); end
  def object; end
  def object=(_); end
  def original_method; end
  def original_method=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def members; end
    def new(*_arg0); end
  end
end

module ActiveSupport::Testing::TaggedLogging
  def before_setup; end
  def tagged_logger=(_arg0); end

  private

  def tagged_logger; end
end

module ActiveSupport::Testing::TimeHelpers
  def after_teardown; end
  def freeze_time(&block); end
  def travel(duration, &block); end
  def travel_back; end
  def travel_to(date_or_time); end
  def unfreeze_time; end

  private

  def simple_stubs; end
end

class ActiveSupport::TimeWithZone
  include ::DateAndTime::Compatibility
  include ::Comparable

  def initialize(utc_time, time_zone, local_time = T.unsafe(nil), period = T.unsafe(nil)); end

  def +(other); end
  def -(other); end
  def <=>(other); end
  def acts_like_time?; end
  def advance(options); end
  def after?(_arg0); end
  def ago(other); end
  def as_json(options = T.unsafe(nil)); end
  def before?(_arg0); end
  def between?(min, max); end
  def blank?; end
  def change(options); end
  def comparable_time; end
  def day; end
  def dst?; end
  def encode_with(coder); end
  def eql?(other); end
  def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end
  def freeze; end
  def future?; end
  def getgm; end
  def getlocal(utc_offset = T.unsafe(nil)); end
  def getutc; end
  def gmt?; end
  def gmt_offset; end
  def gmtime; end
  def gmtoff; end
  def hash; end
  def hour; end
  def httpdate; end
  def in(other); end
  def in_time_zone(new_zone = T.unsafe(nil)); end
  def init_with(coder); end
  def inspect; end
  def is_a?(klass); end
  def isdst; end
  def iso8601(fraction_digits = T.unsafe(nil)); end
  def kind_of?(klass); end
  def localtime(utc_offset = T.unsafe(nil)); end
  def marshal_dump; end
  def marshal_load(variables); end
  def mday; end
  def method_missing(sym, *args, &block); end
  def min; end
  def mon; end
  def month; end
  def next_day?; end
  def nsec; end
  def past?; end
  def period; end
  def prev_day?; end
  def respond_to?(sym, include_priv = T.unsafe(nil)); end
  def rfc2822; end
  def rfc3339(fraction_digits = T.unsafe(nil)); end
  def rfc822; end
  def sec; end
  def since(other); end
  def strftime(format); end
  def time; end
  def time_zone; end
  def to_a; end
  def to_date; end
  def to_datetime; end
  def to_f; end
  def to_formatted_s(format = T.unsafe(nil)); end
  def to_i; end
  def to_r; end
  def to_s(format = T.unsafe(nil)); end
  def to_time; end
  def today?; end
  def tomorrow?; end
  def tv_sec; end
  def usec; end
  def utc; end
  def utc?; end
  def utc_offset; end
  def wday; end
  def xmlschema(fraction_digits = T.unsafe(nil)); end
  def yday; end
  def year; end
  def yesterday?; end
  def zone; end

  private

  def duration_of_variable_length?(obj); end
  def get_period_and_ensure_valid_local_time(period); end
  def incorporate_utc_offset(time, offset); end
  def respond_to_missing?(sym, include_priv); end
  def transfer_time_values_to_utc_constructor(time); end
  def wrap_with_time_zone(time); end

  class << self
    def name; end
  end
end

ActiveSupport::TimeWithZone::PRECISIONS = T.let(T.unsafe(nil), Hash)
ActiveSupport::TimeWithZone::SECONDS_PER_DAY = T.let(T.unsafe(nil), Integer)

class ActiveSupport::TimeZone
  include ::Comparable

  def initialize(name, utc_offset = T.unsafe(nil), tzinfo = T.unsafe(nil)); end

  def <=>(zone); end
  def =~(re); end
  def at(*args); end
  def encode_with(coder); end
  def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end
  def init_with(coder); end
  def iso8601(str); end
  def local(*args); end
  def local_to_utc(time, dst = T.unsafe(nil)); end
  def match?(re); end
  def name; end
  def now; end
  def parse(str, now = T.unsafe(nil)); end
  def period_for_local(time, dst = T.unsafe(nil)); end
  def period_for_utc(time); end
  def periods_for_local(time); end
  def rfc3339(str); end
  def strptime(str, format, now = T.unsafe(nil)); end
  def to_s; end
  def today; end
  def tomorrow; end
  def tzinfo; end
  def utc_offset; end
  def utc_to_local(time); end
  def yesterday; end

  private

  def parts_to_time(parts, now); end
  def time_now; end

  class << self
    def [](arg); end
    def all; end
    def clear; end
    def country_zones(country_code); end
    def create(*_arg0); end
    def find_tzinfo(name); end
    def new(name); end
    def seconds_to_utc_offset(seconds, colon = T.unsafe(nil)); end
    def us_zones; end

    private

    def load_country_zones(code); end
    def zones_map; end
  end
end

ActiveSupport::TimeZone::MAPPING = T.let(T.unsafe(nil), Hash)
ActiveSupport::TimeZone::UTC_OFFSET_WITHOUT_COLON = T.let(T.unsafe(nil), String)
ActiveSupport::TimeZone::UTC_OFFSET_WITH_COLON = T.let(T.unsafe(nil), String)

module ActiveSupport::ToJsonWithActiveSupportEncoder
  def to_json(options = T.unsafe(nil)); end
end

module ActiveSupport::Tryable
  def try(method_name = T.unsafe(nil), *args, &b); end
  def try!(method_name = T.unsafe(nil), *args, &b); end
end

module ActiveSupport::VERSION; end
ActiveSupport::VERSION::MAJOR = T.let(T.unsafe(nil), Integer)
ActiveSupport::VERSION::MINOR = T.let(T.unsafe(nil), Integer)
ActiveSupport::VERSION::PRE = T.let(T.unsafe(nil), String)
ActiveSupport::VERSION::STRING = T.let(T.unsafe(nil), String)
ActiveSupport::VERSION::TINY = T.let(T.unsafe(nil), Integer)

module ActiveSupport::XmlMini
  extend ::ActiveSupport::XmlMini

  def backend; end
  def backend=(name); end
  def depth; end
  def depth=(_arg0); end
  def parse(*args, &block); end
  def rename_key(key, options = T.unsafe(nil)); end
  def to_tag(key, value, options); end
  def with_backend(name); end

  private

  def _dasherize(key); end
  def _parse_binary(bin, entity); end
  def _parse_file(file, entity); end
  def cast_backend_name_to_module(name); end
  def current_thread_backend; end
  def current_thread_backend=(name); end
end

ActiveSupport::XmlMini::DEFAULT_ENCODINGS = T.let(T.unsafe(nil), Hash)
ActiveSupport::XmlMini::FORMATTING = T.let(T.unsafe(nil), Hash)

module ActiveSupport::XmlMini::FileLike
  def content_type; end
  def content_type=(_arg0); end
  def original_filename; end
  def original_filename=(_arg0); end
end

ActiveSupport::XmlMini::PARSING = T.let(T.unsafe(nil), Hash)
ActiveSupport::XmlMini::TYPE_NAMES = T.let(T.unsafe(nil), Hash)

module ActiveSupport::XmlMini_REXML
  extend ::ActiveSupport::XmlMini_REXML

  def parse(data); end

  private

  def collapse(element, depth); end
  def empty_content?(element); end
  def get_attributes(element); end
  def merge!(hash, key, value); end
  def merge_element!(hash, element, depth); end
  def merge_texts!(hash, element); end
  def require_rexml; end
end

ActiveSupport::XmlMini_REXML::CONTENT_KEY = T.let(T.unsafe(nil), String)

class Array
  include ::Enumerable
  include ::JSON::Ext::Generator::GeneratorMethods::Array
  include ::Plist::Emit
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
  def compact_blank!; end
  def extract_options!; end
  def sum(init = T.unsafe(nil), &block); end
  def to_formatted_s(format = T.unsafe(nil)); end
  def to_param; end
  def to_query(key); end
  def to_s(format = T.unsafe(nil)); end
  def to_sentence(options = T.unsafe(nil)); end
  def to_xml(options = T.unsafe(nil)); end

  class << self
    def wrap(object); end
  end
end

class BigDecimal < ::Numeric
  include ::ActiveSupport::BigDecimalWithDefaultFormat

  def as_json(options = T.unsafe(nil)); end
end

BigDecimal::EXCEPTION_NaN = T.let(T.unsafe(nil), Integer)
BigDecimal::VERSION = T.let(T.unsafe(nil), String)

class Class < ::Module
  def class_attribute(*attrs, instance_accessor: T.unsafe(nil), instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_predicate: T.unsafe(nil), default: T.unsafe(nil)); end
end

class Date
  include ::Comparable
  include ::DateAndTime::Zones
  include ::DateAndTime::Calculations

  def +(other); end
  def -(other); end
  def <=>(other); end
  def acts_like_date?; end
  def advance(options); end
  def ago(seconds); end
  def as_json(options = T.unsafe(nil)); end
  def at_beginning_of_day; end
  def at_end_of_day; end
  def at_midday; end
  def at_middle_of_day; end
  def at_midnight; end
  def at_noon; end
  def beginning_of_day; end
  def change(options); end
  def compare_with_coercion(other); end
  def end_of_day; end
  def in(seconds); end
  def inspect; end
  def midday; end
  def middle_of_day; end
  def midnight; end
  def minus_with_duration(other); end
  def noon; end
  def plus_with_duration(other); end
  def readable_inspect; end
  def since(seconds); end
  def to_formatted_s(format = T.unsafe(nil)); end
  def to_s(format = T.unsafe(nil)); end
  def to_time(form = T.unsafe(nil)); end
  def xmlschema; end

  class << self
    def beginning_of_week; end
    def beginning_of_week=(week_start); end
    def beginning_of_week_default; end
    def beginning_of_week_default=(_arg0); end
    def current; end
    def find_beginning_of_week!(week_start); end
    def tomorrow; end
    def yesterday; end
  end
end

Date::DATE_FORMATS = T.let(T.unsafe(nil), Hash)
module DateAndTime; end

module DateAndTime::Calculations
  def after?(date_or_time); end
  def all_day; end
  def all_month; end
  def all_quarter; end
  def all_week(start_day = T.unsafe(nil)); end
  def all_year; end
  def at_beginning_of_month; end
  def at_beginning_of_quarter; end
  def at_beginning_of_week(start_day = T.unsafe(nil)); end
  def at_beginning_of_year; end
  def at_end_of_month; end
  def at_end_of_quarter; end
  def at_end_of_week(start_day = T.unsafe(nil)); end
  def at_end_of_year; end
  def before?(date_or_time); end
  def beginning_of_month; end
  def beginning_of_quarter; end
  def beginning_of_week(start_day = T.unsafe(nil)); end
  def beginning_of_year; end
  def days_ago(days); end
  def days_since(days); end
  def days_to_week_start(start_day = T.unsafe(nil)); end
  def end_of_month; end
  def end_of_quarter; end
  def end_of_week(start_day = T.unsafe(nil)); end
  def end_of_year; end
  def future?; end
  def last_month; end
  def last_quarter; end
  def last_week(start_day = T.unsafe(nil), same_time: T.unsafe(nil)); end
  def last_weekday; end
  def last_year; end
  def monday; end
  def months_ago(months); end
  def months_since(months); end
  def next_day?; end
  def next_occurring(day_of_week); end
  def next_quarter; end
  def next_week(given_day_in_next_week = T.unsafe(nil), same_time: T.unsafe(nil)); end
  def next_weekday; end
  def on_weekday?; end
  def on_weekend?; end
  def past?; end
  def prev_day?; end
  def prev_occurring(day_of_week); end
  def prev_quarter; end
  def prev_week(start_day = T.unsafe(nil), same_time: T.unsafe(nil)); end
  def prev_weekday; end
  def sunday; end
  def today?; end
  def tomorrow; end
  def tomorrow?; end
  def weeks_ago(weeks); end
  def weeks_since(weeks); end
  def years_ago(years); end
  def years_since(years); end
  def yesterday; end
  def yesterday?; end

  private

  def copy_time_to(other); end
  def days_span(day); end
  def first_hour(date_or_time); end
  def last_hour(date_or_time); end
end

DateAndTime::Calculations::DAYS_INTO_WEEK = T.let(T.unsafe(nil), Hash)
DateAndTime::Calculations::WEEKEND_DAYS = T.let(T.unsafe(nil), Array)

module DateAndTime::Compatibility
  def preserve_timezone; end
  def utc_to_local_returns_utc_offset_times; end

  class << self
    def preserve_timezone; end
    def preserve_timezone=(val); end
    def utc_to_local_returns_utc_offset_times; end
    def utc_to_local_returns_utc_offset_times=(val); end
  end
end

module DateAndTime::Zones
  def in_time_zone(zone = T.unsafe(nil)); end

  private

  def time_with_zone(time, zone); end
end

class DateTime < ::Date
  def <=>(other); end
  def advance(options); end
  def ago(seconds); end
  def as_json(options = T.unsafe(nil)); end
  def at_beginning_of_day; end
  def at_beginning_of_hour; end
  def at_beginning_of_minute; end
  def at_end_of_day; end
  def at_end_of_hour; end
  def at_end_of_minute; end
  def at_midday; end
  def at_middle_of_day; end
  def at_midnight; end
  def at_noon; end
  def beginning_of_day; end
  def beginning_of_hour; end
  def beginning_of_minute; end
  def change(options); end
  def end_of_day; end
  def end_of_hour; end
  def end_of_minute; end
  def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end
  def getgm; end
  def getlocal(utc_offset = T.unsafe(nil)); end
  def getutc; end
  def gmtime; end
  def in(seconds); end
  def inspect; end
  def localtime(utc_offset = T.unsafe(nil)); end
  def midday; end
  def middle_of_day; end
  def midnight; end
  def noon; end
  def nsec; end
  def readable_inspect; end
  def seconds_since_midnight; end
  def seconds_until_end_of_day; end
  def since(seconds); end
  def subsec; end
  def to_f; end
  def to_formatted_s(format = T.unsafe(nil)); end
  def to_i; end
  def to_s(format = T.unsafe(nil)); end
  def usec; end
  def utc; end
  def utc?; end
  def utc_offset; end

  private

  def offset_in_seconds; end
  def seconds_since_unix_epoch; end

  class << self
    def civil_from_format(utc_or_local, year, month = T.unsafe(nil), day = T.unsafe(nil), hour = T.unsafe(nil), min = T.unsafe(nil), sec = T.unsafe(nil)); end
    def current; end
  end
end

module ERB::Util
  private

  def h(s); end
  def html_escape(s); end
  def html_escape_once(s); end
  def json_escape(s); end
  def unwrapped_html_escape(s); end

  class << self
    def h(s); end
    def html_escape(s); end
    def html_escape_once(s); end
    def json_escape(s); end
    def unwrapped_html_escape(s); end
  end
end

ERB::Util::HTML_ESCAPE = T.let(T.unsafe(nil), Hash)
ERB::Util::HTML_ESCAPE_ONCE_REGEXP = T.let(T.unsafe(nil), Regexp)
ERB::Util::JSON_ESCAPE = T.let(T.unsafe(nil), Hash)
ERB::Util::JSON_ESCAPE_REGEXP = T.let(T.unsafe(nil), Regexp)

module Enumerable
  def as_json(options = T.unsafe(nil)); end
  def compact_blank; end
  def exclude?(object); end
  def excluding(*elements); end
  def including(*elements); end
  def index_by; end
  def index_with(default = T.unsafe(nil)); end
  def many?; end
  def pick(*keys); end
  def pluck(*keys); end
  def sum(identity = T.unsafe(nil), &block); end
  def without(*elements); end
end

Enumerable::INDEX_WITH_DEFAULT = T.let(T.unsafe(nil), Object)

class Exception
  include ::ActiveSupport::Dependencies::Blamable

  def as_json(options = T.unsafe(nil)); end
end

class FalseClass
  include ::JSON::Ext::Generator::GeneratorMethods::FalseClass
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
  def blank?; end
  def to_param; end
end

class Float < ::Numeric
  include ::JSON::Ext::Generator::GeneratorMethods::Float
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
end

class Hash
  include ::Enumerable
  include ::JSON::Ext::Generator::GeneratorMethods::Hash
  include ::Plist::Emit
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
  def assert_valid_keys(*valid_keys); end
  def compact_blank; end
  def compact_blank!; end
  def deep_merge(other_hash, &block); end
  def deep_merge!(other_hash, &block); end
  def deep_stringify_keys; end
  def deep_stringify_keys!; end
  def deep_symbolize_keys; end
  def deep_symbolize_keys!; end
  def deep_transform_keys(&block); end
  def deep_transform_keys!(&block); end
  def except(*keys); end
  def except!(*keys); end
  def extract!(*keys); end
  def extractable_options?; end
  def slice!(*keys); end
  def stringify_keys; end
  def stringify_keys!; end
  def symbolize_keys; end
  def symbolize_keys!; end
  def to_options; end
  def to_options!; end
  def to_param(namespace = T.unsafe(nil)); end
  def to_query(namespace = T.unsafe(nil)); end

  private

  def _deep_transform_keys_in_object(object, &block); end
  def _deep_transform_keys_in_object!(object, &block); end
end

class IO
  include ::Enumerable
  include ::File::Constants

  def as_json(options = T.unsafe(nil)); end
end

class IO::EAGAINWaitReadable < ::Errno::EAGAIN
  include ::IO::WaitReadable
end

class IO::EAGAINWaitWritable < ::Errno::EAGAIN
  include ::IO::WaitWritable
end

class IO::EINPROGRESSWaitReadable < ::Errno::EINPROGRESS
  include ::IO::WaitReadable
end

class IO::EINPROGRESSWaitWritable < ::Errno::EINPROGRESS
  include ::IO::WaitWritable
end

IO::EWOULDBLOCKWaitReadable = IO::EAGAINWaitReadable
IO::EWOULDBLOCKWaitWritable = IO::EAGAINWaitWritable

class IPAddr
  include ::Comparable

  def as_json(options = T.unsafe(nil)); end
end

module Kernel
  extend ::Forwardable

  private

  def enable_warnings; end
  def silence_warnings; end
  def suppress(*exception_classes); end
  def with_warnings(flag); end

  class << self
    def enable_warnings; end
    def silence_warnings; end
    def suppress(*exception_classes); end
    def with_warnings(flag); end
  end
end

class LoadError < ::ScriptError
  def is_missing?(location); end
end

class Module
  include ::ActiveSupport::Dependencies::ModuleConstMissing

  def alias_attribute(new_name, old_name); end
  def anonymous?; end
  def cattr_accessor(*syms, instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), &blk); end
  def cattr_reader(*syms, instance_reader: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end
  def cattr_writer(*syms, instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end
  def delegate(*methods, to: T.unsafe(nil), prefix: T.unsafe(nil), allow_nil: T.unsafe(nil), private: T.unsafe(nil)); end
  def delegate_missing_to(target, allow_nil: T.unsafe(nil)); end
  def deprecate(*method_names); end
  def mattr_accessor(*syms, instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), &blk); end
  def mattr_reader(*syms, instance_reader: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end
  def mattr_writer(*syms, instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end
  def method_visibility(method); end
  def module_parent; end
  def module_parent_name; end
  def module_parents; end
  def redefine_method(method, &block); end
  def redefine_singleton_method(method, &block); end
  def remove_possible_method(method); end
  def remove_possible_singleton_method(method); end
  def silence_redefinition_of_method(method); end
end

Module::DELEGATION_RESERVED_KEYWORDS = T.let(T.unsafe(nil), Array)
Module::DELEGATION_RESERVED_METHOD_NAMES = T.let(T.unsafe(nil), Set)
class Module::DelegationError < ::NoMethodError; end
Module::RUBY_RESERVED_KEYWORDS = T.let(T.unsafe(nil), Array)

class NameError < ::StandardError
  include ::DidYouMean::Correctable

  def missing_name; end
  def missing_name?(name); end

  private

  def real_mod_name(mod); end
end

NameError::UNBOUND_METHOD_MODULE_NAME = T.let(T.unsafe(nil), UnboundMethod)

class NilClass
  include ::JSON::Ext::Generator::GeneratorMethods::NilClass
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
  def blank?; end
  def to_param; end
  def try(_method_name = T.unsafe(nil), *_arg1); end
  def try!(_method_name = T.unsafe(nil), *_arg1); end
end

class Numeric
  include ::Comparable

  def as_json(options = T.unsafe(nil)); end
  def blank?; end
  def byte; end
  def bytes; end
  def day; end
  def days; end
  def exabyte; end
  def exabytes; end
  def fortnight; end
  def fortnights; end
  def gigabyte; end
  def gigabytes; end
  def hour; end
  def hours; end
  def html_safe?; end
  def in_milliseconds; end
  def kilobyte; end
  def kilobytes; end
  def megabyte; end
  def megabytes; end
  def minute; end
  def minutes; end
  def petabyte; end
  def petabytes; end
  def second; end
  def seconds; end
  def terabyte; end
  def terabytes; end
  def week; end
  def weeks; end
end

Numeric::EXABYTE = T.let(T.unsafe(nil), Integer)
Numeric::GIGABYTE = T.let(T.unsafe(nil), Integer)
Numeric::KILOBYTE = T.let(T.unsafe(nil), Integer)
Numeric::MEGABYTE = T.let(T.unsafe(nil), Integer)
Numeric::PETABYTE = T.let(T.unsafe(nil), Integer)
Numeric::TERABYTE = T.let(T.unsafe(nil), Integer)

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

  def acts_like?(duck); end
  def as_json(options = T.unsafe(nil)); end
  def blank?; end
  def html_safe?; end
  def instance_values; end
  def instance_variable_names; end
  def presence; end
  def present?; end
  def to_param; end
  def to_query(key); end
end

class Pathname
  def as_json(options = T.unsafe(nil)); end
end

class Process::Status
  def as_json(options = T.unsafe(nil)); end
end

class Range
  include ::Enumerable

  def as_json(options = T.unsafe(nil)); end
  def sum(identity = T.unsafe(nil)); end
end

class Regexp
  def as_json(options = T.unsafe(nil)); end
end

Regexp::TOKEN_KEYS = T.let(T.unsafe(nil), Array)

class Regexp::Token < ::Struct
  def conditional_level; end
  def conditional_level=(_); end
  def length; end
  def level; end
  def level=(_); end
  def next; end
  def next=(_arg0); end
  def offset; end
  def previous; end
  def previous=(_arg0); end
  def set_level; end
  def set_level=(_); end
  def te; end
  def te=(_); end
  def text; end
  def text=(_); end
  def token; end
  def token=(_); end
  def ts; end
  def ts=(_); end
  def type; end
  def type=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def members; end
    def new(*_arg0); end
  end
end

class String
  include ::Comparable
  include ::Colorize::InstanceMethods
  include ::JSON::Ext::Generator::GeneratorMethods::String
  include ::MessagePack::CoreExt
  extend ::Colorize::ClassMethods
  extend ::JSON::Ext::Generator::GeneratorMethods::String::Extend

  def acts_like_string?; end
  def as_json(options = T.unsafe(nil)); end
  def at(position); end
  def blank?; end
  def camelcase(first_letter = T.unsafe(nil)); end
  def camelize(first_letter = T.unsafe(nil)); end
  def classify; end
  def constantize; end
  def dasherize; end
  def deconstantize; end
  def demodulize; end
  def first(limit = T.unsafe(nil)); end
  def foreign_key(separate_class_name_and_id_with_underscore = T.unsafe(nil)); end
  def from(position); end
  def html_safe; end
  def humanize(capitalize: T.unsafe(nil), keep_id_suffix: T.unsafe(nil)); end
  def is_utf8?; end
  def last(limit = T.unsafe(nil)); end
  def mb_chars; end
  def parameterize(separator: T.unsafe(nil), preserve_case: T.unsafe(nil), locale: T.unsafe(nil)); end
  def pluralize(count = T.unsafe(nil), locale = T.unsafe(nil)); end
  def remove(*patterns); end
  def remove!(*patterns); end
  def safe_constantize; end
  def singularize(locale = T.unsafe(nil)); end
  def squish; end
  def squish!; end
  def tableize; end
  def titlecase(keep_id_suffix: T.unsafe(nil)); end
  def titleize(keep_id_suffix: T.unsafe(nil)); end
  def to(position); end
  def to_date; end
  def to_datetime; end
  def to_time(form = T.unsafe(nil)); end
  def truncate(truncate_at, options = T.unsafe(nil)); end
  def truncate_bytes(truncate_at, omission: T.unsafe(nil)); end
  def truncate_words(words_count, options = T.unsafe(nil)); end
  def underscore; end
  def upcase_first; end
end

String::BLANK_RE = T.let(T.unsafe(nil), Regexp)
String::ENCODED_BLANKS = T.let(T.unsafe(nil), Concurrent::Map)

class Struct
  include ::Enumerable

  def as_json(options = T.unsafe(nil)); end
end

Struct::Group = Etc::Group
Struct::HTMLElementDescription = Struct
Struct::Passwd = Etc::Passwd
Struct::Tms = Process::Tms

class Symbol
  include ::Comparable
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
  def end_with?(*suffixes); end
  def ends_with?(*suffixes); end
  def start_with?(*prefixes); end
  def starts_with?(*prefixes); end
end

class Time
  include ::Comparable
  include ::DateAndTime::Zones
  include ::DateAndTime::Calculations

  def +(other); end
  def -(other); end
  def <=>(other); end
  def acts_like_time?; end
  def advance(options); end
  def ago(seconds); end
  def as_json(options = T.unsafe(nil)); end
  def at_beginning_of_day; end
  def at_beginning_of_hour; end
  def at_beginning_of_minute; end
  def at_end_of_day; end
  def at_end_of_hour; end
  def at_end_of_minute; end
  def at_midday; end
  def at_middle_of_day; end
  def at_midnight; end
  def at_noon; end
  def beginning_of_day; end
  def beginning_of_hour; end
  def beginning_of_minute; end
  def blank?; end
  def ceil(precision = T.unsafe(nil)); end
  def change(options); end
  def compare_with_coercion(other); end
  def end_of_day; end
  def end_of_hour; end
  def end_of_minute; end
  def eql?(other); end
  def eql_with_coercion(other); end
  def floor(precision = T.unsafe(nil)); end
  def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end
  def in(seconds); end
  def midday; end
  def middle_of_day; end
  def midnight; end
  def minus_with_coercion(other); end
  def minus_with_duration(other); end
  def minus_without_coercion(other); end
  def next_day(days = T.unsafe(nil)); end
  def next_month(months = T.unsafe(nil)); end
  def next_year(years = T.unsafe(nil)); end
  def noon; end
  def plus_with_duration(other); end
  def prev_day(days = T.unsafe(nil)); end
  def prev_month(months = T.unsafe(nil)); end
  def prev_year(years = T.unsafe(nil)); end
  def sec_fraction; end
  def seconds_since_midnight; end
  def seconds_until_end_of_day; end
  def since(seconds); end
  def to_formatted_s(format = T.unsafe(nil)); end
  def to_s(format = T.unsafe(nil)); end

  class << self
    def ===(other); end
    def at(*args); end
    def at_with_coercion(*args); end
    def current; end
    def days_in_month(month, year = T.unsafe(nil)); end
    def days_in_year(year = T.unsafe(nil)); end
    def find_zone(time_zone); end
    def find_zone!(time_zone); end
    def rfc3339(str); end
    def use_zone(time_zone); end
    def zone; end
    def zone=(time_zone); end
    def zone_default; end
    def zone_default=(_arg0); end
  end
end

Time::COMMON_YEAR_DAYS_IN_MONTH = T.let(T.unsafe(nil), Array)
Time::DATE_FORMATS = T.let(T.unsafe(nil), Hash)

class TrueClass
  include ::JSON::Ext::Generator::GeneratorMethods::TrueClass
  include ::MessagePack::CoreExt

  def as_json(options = T.unsafe(nil)); end
  def blank?; end
  def to_param; end
end

class URI::Generic
  include ::URI::RFC2396_REGEXP
  include ::URI

  def as_json(options = T.unsafe(nil)); end
end
