# <!-- rdoc-file=lib/find.rb -->
# The `Find` module supports the top-down traversal of a set of file paths.
#
# For example, to total the size of all files under your home directory,
# ignoring anything in a "dot" directory (e.g. $HOME/.ssh):
#
#     require 'find'
#
#     total_size = 0
#
#     Find.find(ENV["HOME"]) do |path|
#       if FileTest.directory?(path)
#         if File.basename(path).start_with?('.')
#           Find.prune       # Don't look any further into this directory.
#         else
#           next
#         end
#       else
#         total_size += FileTest.size(path)
#       end
#     end
#
module Find
  # <!--
  #   rdoc-file=lib/find.rb
  #   - find(*paths, ignore_error: true) { |path| ... }
  # -->
  # Calls the associated block with the name of every file and directory listed as
  # arguments, then recursively on their subdirectories, and so on.
  #
  # Returns an enumerator if no block is given.
  #
  # See the `Find` module documentation for an example.
  #
  def self?.find: (*String | _ToPath paths, ?ignore_error: boolish) -> Enumerator[String, nil]
                | (*String | _ToPath paths, ?ignore_error: boolish) { (String) -> void } -> nil

  # <!--
  #   rdoc-file=lib/find.rb
  #   - prune()
  # -->
  # Skips the current file or directory, restarting the loop with the next entry.
  # If the current file is a directory, that directory will not be recursively
  # entered. Meaningful only within the block associated with Find::find.
  #
  # See the `Find` module documentation for an example.
  #
  def self?.prune: () -> void
end
