module Prism

class Pattern
  class CompilationError < StandardError
  end

  attr_reader query: String

  def initialize: (String query) -> void
  def compile: () -> Proc
  def scan: (Prism::node root) { (Prism::node) -> void } -> void
          | (Prism::node root) -> ::Enumerator[Prism::node, void]
end

end