Arie/serveme

View on GitHub
sorbet/rbi/gems/cucumber-messages@18.0.0.rbi

Summary

Maintainability
Test Coverage
# typed: true

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

# The code was auto-generated by {this script}[https://github.com/cucumber/common/blob/main/messages/jsonschema/scripts/codegen.rb]
#
# source://cucumber-messages//lib/cucumber/messages/message/utils.rb#1
module Cucumber
  class << self
    # source://cucumber/8.0.0/lib/cucumber/deprecate.rb#52
    def deprecate(*args); end

    # source://cucumber/8.0.0/lib/cucumber/platform.rb#21
    def file_mode(mode, encoding = T.unsafe(nil)); end

    # source://cucumber/8.0.0/lib/cucumber.rb#15
    def logger; end

    # source://cucumber/8.0.0/lib/cucumber.rb#23
    def logger=(logger); end

    # source://cucumber/8.0.0/lib/cucumber/platform.rb#18
    def use_full_backtrace; end

    # source://cucumber/8.0.0/lib/cucumber/platform.rb#18
    def use_full_backtrace=(_arg0); end

    # source://cucumber/8.0.0/lib/cucumber.rb#13
    def use_legacy_autoloader; end

    # source://cucumber/8.0.0/lib/cucumber.rb#13
    def use_legacy_autoloader=(_arg0); end

    # source://cucumber/8.0.0/lib/cucumber.rb#13
    def wants_to_quit; end

    # source://cucumber/8.0.0/lib/cucumber.rb#13
    def wants_to_quit=(_arg0); end
  end
end

# source://cucumber/8.0.0/lib/cucumber/platform.rb#11
Cucumber::BINARY = T.let(T.unsafe(nil), String)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#9
Cucumber::IRONRUBY = T.let(T.unsafe(nil), FalseClass)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#8
Cucumber::JRUBY = T.let(T.unsafe(nil), T.untyped)

# source://cucumber/8.0.0/lib/cucumber/platform.rb#12
Cucumber::LIBDIR = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages/message/utils.rb#2
module Cucumber::Messages; end

# Represents the Attachment message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# //// Attachments (parse errors, execution errors, screenshots, links...)
#
# *
#  An attachment represents any kind of data associated with a line in a
#  [Source](#io.cucumber.messages.Source) file. It can be used for:
#
#  * Syntax errors during parse time
#  * Screenshots captured and attached during execution
#  * Logs captured and attached during execution
#
#  It is not to be used for runtime errors raised/thrown during execution. This
#  is captured in `TestResult`.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#27
class Cucumber::Messages::Attachment < ::Cucumber::Messages::Message
  # @return [Attachment] a new instance of Attachment
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#87
  def initialize(body: T.unsafe(nil), content_encoding: T.unsafe(nil), file_name: T.unsafe(nil), media_type: T.unsafe(nil), source: T.unsafe(nil), test_case_started_id: T.unsafe(nil), test_step_id: T.unsafe(nil), url: T.unsafe(nil)); end

  # *
  #  The body of the attachment. If `contentEncoding` is `IDENTITY`, the attachment
  #  is simply the string. If it's `BASE64`, the string should be Base64 decoded to
  #  obtain the attachment.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#35
  def body; end

  # *
  #  Whether to interpret `body` "as-is" (IDENTITY) or if it needs to be Base64-decoded (BASE64).
  #
  #  Content encoding is *not* determined by the media type, but rather by the type
  #  of the object being attached:
  #
  #  - string => IDENTITY
  #  - byte array => BASE64
  #  - stream => BASE64
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#48
  def content_encoding; end

  # *
  #  Suggested file name of the attachment. (Provided by the user as an argument to `attach`)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#54
  def file_name; end

  # *
  #  The media type of the data. This can be any valid
  #  [IANA Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml)
  #  as well as Cucumber-specific media types such as `text/x.cucumber.gherkin+plain`
  #  and `text/x.cucumber.stacktrace+plain`
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#63
  def media_type; end

  # Returns the value of attribute source.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#65
  def source; end

  # Returns the value of attribute test_case_started_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#67
  def test_case_started_id; end

  # Returns the value of attribute test_step_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#69
  def test_step_id; end

  # *
  #  A URL where the attachment can be retrieved. This field should not be set by Cucumber.
  #  It should be set by a program that reads a message stream and does the following for
  #  each Attachment message:
  #
  #  - Writes the body (after base64 decoding if necessary) to a new file.
  #  - Sets `body` and `contentEncoding` to `null`
  #  - Writes out the new attachment message
  #
  #  This will result in a smaller message stream, which can improve performance and
  #  reduce bandwidth of message consumers. It also makes it easier to process and download attachments
  #  separately from reports.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#85
  def url; end

  class << self
    # Returns a new Attachment from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Attachment.from_h(some_hash) # => #<Cucumber::Messages::Attachment:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#20
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1890
class Cucumber::Messages::AttachmentContentEncoding; end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1892
Cucumber::Messages::AttachmentContentEncoding::BASE64 = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1891
Cucumber::Messages::AttachmentContentEncoding::IDENTITY = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#272
class Cucumber::Messages::Background < ::Cucumber::Messages::Message
  # @return [Background] a new instance of Background
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#289
  def initialize(location: T.unsafe(nil), keyword: T.unsafe(nil), name: T.unsafe(nil), description: T.unsafe(nil), steps: T.unsafe(nil), id: T.unsafe(nil)); end

  # Returns the value of attribute description.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#283
  def description; end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#287
  def id; end

  # Returns the value of attribute keyword.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#279
  def keyword; end

  # The location of the `Background` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#277
  def location; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#281
  def name; end

  # Returns the value of attribute steps.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#285
  def steps; end

  class << self
    # Returns a new Background from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Background.from_h(some_hash) # => #<Cucumber::Messages::Background:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#122
    def from_h(hash); end
  end
end

# Represents the Ci message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# CI environment
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#902
class Cucumber::Messages::Ci < ::Cucumber::Messages::Message
  # @return [Ci] a new instance of Ci
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#921
  def initialize(name: T.unsafe(nil), url: T.unsafe(nil), build_number: T.unsafe(nil), git: T.unsafe(nil)); end

  # The build number. Some CI servers use non-numeric build numbers, which is why this is a string
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#917
  def build_number; end

  # Returns the value of attribute git.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#919
  def git; end

  # Name of the CI product, e.g. "Jenkins", "CircleCI" etc.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#907
  def name; end

  # Link to the build
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#912
  def url; end

  class << self
    # Returns a new Ci from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Ci.from_h(some_hash) # => #<Cucumber::Messages::Ci:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#503
    def from_h(hash); end
  end
end

# Represents the Comment message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  A comment in a Gherkin document
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#314
class Cucumber::Messages::Comment < ::Cucumber::Messages::Message
  # @return [Comment] a new instance of Comment
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#326
  def initialize(location: T.unsafe(nil), text: T.unsafe(nil)); end

  # The location of the comment
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#319
  def location; end

  # The text of the comment
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#324
  def text; end

  class << self
    # Returns a new Comment from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Comment.from_h(some_hash) # => #<Cucumber::Messages::Comment:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#146
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#342
class Cucumber::Messages::DataTable < ::Cucumber::Messages::Message
  # @return [DataTable] a new instance of DataTable
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#348
  def initialize(location: T.unsafe(nil), rows: T.unsafe(nil)); end

  # Returns the value of attribute location.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#344
  def location; end

  # Returns the value of attribute rows.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#346
  def rows; end

  class << self
    # Returns a new DataTable from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::DataTable.from_h(some_hash) # => #<Cucumber::Messages::DataTable:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#166
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#364
class Cucumber::Messages::DocString < ::Cucumber::Messages::Message
  # @return [DocString] a new instance of DocString
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#374
  def initialize(location: T.unsafe(nil), media_type: T.unsafe(nil), content: T.unsafe(nil), delimiter: T.unsafe(nil)); end

  # Returns the value of attribute content.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#370
  def content; end

  # Returns the value of attribute delimiter.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#372
  def delimiter; end

  # Returns the value of attribute location.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#366
  def location; end

  # Returns the value of attribute media_type.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#368
  def media_type; end

  class << self
    # Returns a new DocString from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::DocString.from_h(some_hash) # => #<Cucumber::Messages::DocString:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#186
    def from_h(hash); end
  end
end

# Represents the Duration message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# The structure is pretty close of the Timestamp one. For clarity, a second type
#  of message is used.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#116
class Cucumber::Messages::Duration < ::Cucumber::Messages::Message
  # @return [Duration] a new instance of Duration
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#128
  def initialize(seconds: T.unsafe(nil), nanos: T.unsafe(nil)); end

  # Non-negative fractions of a second at nanosecond resolution. Negative
  #  second values with fractions must still have non-negative nanos values
  #  that count forward in time. Must be from 0 to 999,999,999
  #  inclusive.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#126
  def nanos; end

  # Returns the value of attribute seconds.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#118
  def seconds; end

  class << self
    # Returns a new Duration from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Duration.from_h(some_hash) # => #<Cucumber::Messages::Duration:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#46
    def from_h(hash); end
  end
end

# Represents the Envelope message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# When removing a field, replace it with reserved, rather than deleting the line.
#  When adding a field, add it to the end and increment the number by one.
#  See https://developers.google.com/protocol-buffers/docs/proto#updating for details
#
# *
#  All the messages that are passed between different components/processes are Envelope
#  messages.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#150
class Cucumber::Messages::Envelope < ::Cucumber::Messages::Message
  # @return [Envelope] a new instance of Envelope
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#186
  def initialize(attachment: T.unsafe(nil), gherkin_document: T.unsafe(nil), hook: T.unsafe(nil), meta: T.unsafe(nil), parameter_type: T.unsafe(nil), parse_error: T.unsafe(nil), pickle: T.unsafe(nil), source: T.unsafe(nil), step_definition: T.unsafe(nil), test_case: T.unsafe(nil), test_case_finished: T.unsafe(nil), test_case_started: T.unsafe(nil), test_run_finished: T.unsafe(nil), test_run_started: T.unsafe(nil), test_step_finished: T.unsafe(nil), test_step_started: T.unsafe(nil), undefined_parameter_type: T.unsafe(nil)); end

  # Returns the value of attribute attachment.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#152
  def attachment; end

  # Returns the value of attribute gherkin_document.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#154
  def gherkin_document; end

  # Returns the value of attribute hook.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#156
  def hook; end

  # Returns the value of attribute meta.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#158
  def meta; end

  # Returns the value of attribute parameter_type.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#160
  def parameter_type; end

  # Returns the value of attribute parse_error.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#162
  def parse_error; end

  # Returns the value of attribute pickle.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#164
  def pickle; end

  # Returns the value of attribute source.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#166
  def source; end

  # Returns the value of attribute step_definition.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#168
  def step_definition; end

  # Returns the value of attribute test_case.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#170
  def test_case; end

  # Returns the value of attribute test_case_finished.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#172
  def test_case_finished; end

  # Returns the value of attribute test_case_started.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#174
  def test_case_started; end

  # Returns the value of attribute test_run_finished.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#176
  def test_run_finished; end

  # Returns the value of attribute test_run_started.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#178
  def test_run_started; end

  # Returns the value of attribute test_step_finished.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#180
  def test_step_finished; end

  # Returns the value of attribute test_step_started.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#182
  def test_step_started; end

  # Returns the value of attribute undefined_parameter_type.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#184
  def undefined_parameter_type; end

  class << self
    # Returns a new Envelope from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Envelope.from_h(some_hash) # => #<Cucumber::Messages::Envelope:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#66
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#394
class Cucumber::Messages::Examples < ::Cucumber::Messages::Message
  # @return [Examples] a new instance of Examples
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#415
  def initialize(location: T.unsafe(nil), tags: T.unsafe(nil), keyword: T.unsafe(nil), name: T.unsafe(nil), description: T.unsafe(nil), table_header: T.unsafe(nil), table_body: T.unsafe(nil), id: T.unsafe(nil)); end

  # Returns the value of attribute description.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#407
  def description; end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#413
  def id; end

  # Returns the value of attribute keyword.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#403
  def keyword; end

  # The location of the `Examples` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#399
  def location; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#405
  def name; end

  # Returns the value of attribute table_body.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#411
  def table_body; end

  # Returns the value of attribute table_header.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#409
  def table_header; end

  # Returns the value of attribute tags.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#401
  def tags; end

  class << self
    # Returns a new Examples from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Examples.from_h(some_hash) # => #<Cucumber::Messages::Examples:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#208
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#443
class Cucumber::Messages::Feature < ::Cucumber::Messages::Message
  # @return [Feature] a new instance of Feature
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#480
  def initialize(location: T.unsafe(nil), tags: T.unsafe(nil), language: T.unsafe(nil), keyword: T.unsafe(nil), name: T.unsafe(nil), description: T.unsafe(nil), children: T.unsafe(nil)); end

  # Zero or more children
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#478
  def children; end

  # The line(s) underneath the line with the `keyword` that are used as description
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#473
  def description; end

  # The text of the `Feature` keyword (in the language specified by `language`)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#463
  def keyword; end

  # The [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) language code of the Gherkin document
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#458
  def language; end

  # The location of the `Feature` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#448
  def location; end

  # The name of the feature (the text following the `keyword`)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#468
  def name; end

  # All the tags placed above the `Feature` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#453
  def tags; end

  class << self
    # Returns a new Feature from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Feature.from_h(some_hash) # => #<Cucumber::Messages::Feature:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#234
    def from_h(hash); end
  end
end

# Represents the FeatureChild message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  A child node of a `Feature` node
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#507
class Cucumber::Messages::FeatureChild < ::Cucumber::Messages::Message
  # @return [FeatureChild] a new instance of FeatureChild
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#515
  def initialize(rule: T.unsafe(nil), background: T.unsafe(nil), scenario: T.unsafe(nil)); end

  # Returns the value of attribute background.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#511
  def background; end

  # Returns the value of attribute rule.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#509
  def rule; end

  # Returns the value of attribute scenario.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#513
  def scenario; end

  class << self
    # Returns a new FeatureChild from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::FeatureChild.from_h(some_hash) # => #<Cucumber::Messages::FeatureChild:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#259
    def from_h(hash); end
  end
end

# Represents the GherkinDocument message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  The [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) of a Gherkin document.
#  Cucumber implementations should *not* depend on `GherkinDocument` or any of its
#  children for execution - use [Pickle](#io.cucumber.messages.Pickle) instead.
#
#  The only consumers of `GherkinDocument` should only be formatters that produce
#  "rich" output, resembling the original Gherkin document.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#238
class Cucumber::Messages::GherkinDocument < ::Cucumber::Messages::Message
  # @return [GherkinDocument] a new instance of GherkinDocument
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#254
  def initialize(uri: T.unsafe(nil), feature: T.unsafe(nil), comments: T.unsafe(nil)); end

  # All the comments in the Gherkin document
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#252
  def comments; end

  # Returns the value of attribute feature.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#247
  def feature; end

  # *
  #  The [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier)
  #  of the source, typically a file path relative to the root directory
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#245
  def uri; end

  class << self
    # Returns a new GherkinDocument from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::GherkinDocument.from_h(some_hash) # => #<Cucumber::Messages::GherkinDocument:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#101
    def from_h(hash); end
  end
end

# Represents the Git message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# Information about Git, provided by the Build/CI server as environment
#  variables.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#942
class Cucumber::Messages::Git < ::Cucumber::Messages::Message
  # @return [Git] a new instance of Git
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#952
  def initialize(remote: T.unsafe(nil), revision: T.unsafe(nil), branch: T.unsafe(nil), tag: T.unsafe(nil)); end

  # Returns the value of attribute branch.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#948
  def branch; end

  # Returns the value of attribute remote.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#944
  def remote; end

  # Returns the value of attribute revision.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#946
  def revision; end

  # Returns the value of attribute tag.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#950
  def tag; end

  class << self
    # Returns a new Git from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Git.from_h(some_hash) # => #<Cucumber::Messages::Git:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#525
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1507
class Cucumber::Messages::Group < ::Cucumber::Messages::Message
  # @return [Group] a new instance of Group
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1515
  def initialize(children: T.unsafe(nil), start: T.unsafe(nil), value: T.unsafe(nil)); end

  # Returns the value of attribute children.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1509
  def children; end

  # Returns the value of attribute start.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1511
  def start; end

  # Returns the value of attribute value.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1513
  def value; end

  class << self
    # Returns a new Group from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Group.from_h(some_hash) # => #<Cucumber::Messages::Group:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#921
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#793
class Cucumber::Messages::Hook < ::Cucumber::Messages::Message
  # @return [Hook] a new instance of Hook
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#803
  def initialize(id: T.unsafe(nil), name: T.unsafe(nil), source_reference: T.unsafe(nil), tag_expression: T.unsafe(nil)); end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#795
  def id; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#797
  def name; end

  # Returns the value of attribute source_reference.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#799
  def source_reference; end

  # Returns the value of attribute tag_expression.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#801
  def tag_expression; end

  class << self
    # Returns a new Hook from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Hook.from_h(some_hash) # => #<Cucumber::Messages::Hook:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#437
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages/id_generator.rb#5
module Cucumber::Messages::IdGenerator; end

# source://cucumber-messages//lib/cucumber/messages/id_generator.rb#6
class Cucumber::Messages::IdGenerator::Incrementing
  # @return [Incrementing] a new instance of Incrementing
  #
  # source://cucumber-messages//lib/cucumber/messages/id_generator.rb#7
  def initialize; end

  # source://cucumber-messages//lib/cucumber/messages/id_generator.rb#11
  def new_id; end
end

# source://cucumber-messages//lib/cucumber/messages/id_generator.rb#17
class Cucumber::Messages::IdGenerator::UUID
  # source://cucumber-messages//lib/cucumber/messages/id_generator.rb#18
  def new_id; end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1375
class Cucumber::Messages::JavaMethod < ::Cucumber::Messages::Message
  # @return [JavaMethod] a new instance of JavaMethod
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1383
  def initialize(class_name: T.unsafe(nil), method_name: T.unsafe(nil), method_parameter_types: T.unsafe(nil)); end

  # Returns the value of attribute class_name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1377
  def class_name; end

  # Returns the value of attribute method_name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1379
  def method_name; end

  # Returns the value of attribute method_parameter_types.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1381
  def method_parameter_types; end

  class << self
    # Returns a new JavaMethod from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::JavaMethod.from_h(some_hash) # => #<Cucumber::Messages::JavaMethod:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#817
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1401
class Cucumber::Messages::JavaStackTraceElement < ::Cucumber::Messages::Message
  # @return [JavaStackTraceElement] a new instance of JavaStackTraceElement
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1409
  def initialize(class_name: T.unsafe(nil), file_name: T.unsafe(nil), method_name: T.unsafe(nil)); end

  # Returns the value of attribute class_name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1403
  def class_name; end

  # Returns the value of attribute file_name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1405
  def file_name; end

  # Returns the value of attribute method_name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1407
  def method_name; end

  class << self
    # Returns a new JavaStackTraceElement from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::JavaStackTraceElement.from_h(some_hash) # => #<Cucumber::Messages::JavaStackTraceElement:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#838
    def from_h(hash); end
  end
end

# Represents the Location message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  Points to a line and a column in a text file
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#824
class Cucumber::Messages::Location < ::Cucumber::Messages::Message
  # @return [Location] a new instance of Location
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#830
  def initialize(line: T.unsafe(nil), column: T.unsafe(nil)); end

  # Returns the value of attribute column.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#828
  def column; end

  # Returns the value of attribute line.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#826
  def line; end

  class << self
    # Returns a new Location from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Location.from_h(some_hash) # => #<Cucumber::Messages::Location:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#459
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages/message/utils.rb#3
class Cucumber::Messages::Message
  include ::Cucumber::Messages::Message::Utils
  include ::Cucumber::Messages::Message::Deserialization
  include ::Cucumber::Messages::Message::Serialization
  extend ::Cucumber::Messages::Message::Utils::ClassMethods
  extend ::Cucumber::Messages::Message::Deserialization::ClassMethods
end

# source://cucumber-messages//lib/cucumber/messages/message/deserialization.rb#9
module Cucumber::Messages::Message::Deserialization
  mixes_in_class_methods ::Cucumber::Messages::Message::Deserialization::ClassMethods

  class << self
    # @private
    #
    # source://cucumber-messages//lib/cucumber/messages/message/deserialization.rb#10
    def included(other); end
  end
end

# source://cucumber-messages//lib/cucumber/messages/message/deserialization.rb#14
module Cucumber::Messages::Message::Deserialization::ClassMethods
  # Returns a new Message - or messages into an array - deserialized from the given json document.
  # CamelCased keys are properly converted to snake_cased attributes in the process
  #
  #   Cucumber::Messages::Duration.from_json('{"seconds":1,"nanos":42}')               # => #<Cucumber::Messages::Duration:0x00007efda134c290 @seconds=1, @nanos=42>
  #   Cucumber::Messages::PickleTag.from_json('{"name":"foo","astNodeId":"abc-def"}')  # => #<Cucumber::Messages::PickleTag:0x00007efda138cdb8 @name="foo", @ast_node_id="abc-def">
  #
  # It is recursive so embedded messages are also processed.
  #
  #   json_string = { location: { line: 2 }, text: "comment" }.to_json
  #   Cucumber::Messages::Comment.from_json(json_string)  # => #<Cucumber::Messages::Comment:0x00007efda6abf888 @location=#<Cucumber::Messages::Location:0x00007efda6abf978 @line=2, @column=nil>, @text="comment">
  #
  #   json_string = { uri: 'file:///...', comments: [{text: 'text comment'}, {text: 'another comment'}]}.to_json
  #   Cucumber::Messages::GherkinDocument.from_json(json_string)  # => #<Cucumber::Messages::GherkinDocument:0x00007efda11e6a90 ... @comments=[#<Cucumber::Messages::Comment:0x00007efda11e6e50 ..., #<Cucumber::Messages::Comment:0x00007efda11e6b58 ...>]>
  #
  # source://cucumber-messages//lib/cucumber/messages/message/deserialization.rb#32
  def from_json(json_string); end
end

# source://cucumber-messages//lib/cucumber/messages/message/serialization.rb#9
module Cucumber::Messages::Message::Serialization
  # Returns a new Hash formed from the message attributes
  # If +camelize:+ keyword parameter is set to true, then keys will be camelized
  # If +reject_nil_values:+ keyword parameter is set to true, resulting hash won't include nil values
  #
  #   Cucumber::Messages::Duration.new(seconds: 1, nanos: 42).to_h                                 # => { seconds: 1, nanos: 42 }
  #   Cucumber::Messages::PickleTag.new(name: 'foo', ast_node_id: 'abc-def').to_h(camelize: true)  # => { name: 'foo', astNodeId: 'abc-def' }
  #   Cucumber::Messages::PickleTag.new(name: 'foo', ast_node_id: nil).to_h(reject_nil_values: true)  # => { name: 'foo' }
  #
  # It is recursive so embedded messages are also processed
  #
  #   location = Cucumber::Messages::Location.new(line: 2)
  #   Cucumber::Messages::Comment.new(location: location, text: 'comment').to_h  # => { location: { line: 2, :column: nil }, text: "comment" }
  #
  # source://cucumber-messages//lib/cucumber/messages/message/serialization.rb#26
  def to_h(camelize: T.unsafe(nil), reject_nil_values: T.unsafe(nil)); end

  # Generates a JSON document from the message.
  # Keys are camelized during the process. Null values are not part of the json document.
  #
  #   Cucumber::Messages::Duration.new(seconds: 1, nanos: 42).to_json                 # => '{"seconds":1,"nanos":42}'
  #   Cucumber::Messages::PickleTag.new(name: 'foo', ast_node_id: 'abc-def').to_json  # => '{"name":"foo","astNodeId":"abc-def"}'
  #   Cucumber::Messages::PickleTag.new(name: 'foo', ast_node_id: nil).to_json        # => '{"name":"foo"}'
  #
  # As #to_h, the method is recursive
  #
  #   location = Cucumber::Messages::Location.new(line: 2)
  #   Cucumber::Messages::Comment.new(location: location, text: 'comment').to_json     # => '{"location":{"line":2,"column":null},"text":"comment"}'
  #
  # source://cucumber-messages//lib/cucumber/messages/message/serialization.rb#58
  def to_json; end

  private

  # source://cucumber-messages//lib/cucumber/messages/message/serialization.rb#64
  def prepare_value(value, camelize:, reject_nil_values:); end
end

# source://cucumber-messages//lib/cucumber/messages/message/utils.rb#4
module Cucumber::Messages::Message::Utils
  mixes_in_class_methods ::Cucumber::Messages::Message::Utils::ClassMethods

  class << self
    # @private
    #
    # source://cucumber-messages//lib/cucumber/messages/message/utils.rb#5
    def included(other); end
  end
end

# source://cucumber-messages//lib/cucumber/messages/message/utils.rb#9
module Cucumber::Messages::Message::Utils::ClassMethods
  # Converts strings to UpperCamelCase.
  #
  #   camelize('gherkin_document')                # => "GherkinDocument"
  #
  # This is a simplified version of the Ruby on Rails implementation
  # https://github.com/rails/rails/blob/v6.1.3.2/activesupport/lib/active_support/inflector/methods.rb#L69
  #
  # source://cucumber-messages//lib/cucumber/messages/message/utils.rb#37
  def camelize(term); end

  # Makes an underscored, lowercase form from the expression in the string.
  #
  #   underscore('GherkinDocument')         # => "gherkin_document"
  #
  # This is a simplified version of the Ruby on Rails implementation
  # https://github.com/rails/rails/blob/v6.1.3.2/activesupport/lib/active_support/inflector/methods.rb#L92
  #
  # source://cucumber-messages//lib/cucumber/messages/message/utils.rb#19
  def underscore(term); end
end

# Represents the Meta message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  This message contains meta information about the environment. Consumers can use
#  this for various purposes.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#848
class Cucumber::Messages::Meta < ::Cucumber::Messages::Message
  # @return [Meta] a new instance of Meta
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#878
  def initialize(protocol_version: T.unsafe(nil), implementation: T.unsafe(nil), runtime: T.unsafe(nil), os: T.unsafe(nil), cpu: T.unsafe(nil), ci: T.unsafe(nil)); end

  # Returns the value of attribute ci.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#876
  def ci; end

  # 386, arm, amd64 etc
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#874
  def cpu; end

  # SpecFlow, Cucumber-JVM, Cucumber.js, Cucumber-Ruby, Behat etc.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#859
  def implementation; end

  # Windows, Linux, MacOS etc
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#869
  def os; end

  # *
  #  The [SEMVER](https://semver.org/) version number of the protocol
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#854
  def protocol_version; end

  # Java, Ruby, Node.js etc
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#864
  def runtime; end

  class << self
    # Returns a new Meta from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Meta.from_h(some_hash) # => #<Cucumber::Messages::Meta:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#479
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages/ndjson_to_message_enumerator.rb#5
class Cucumber::Messages::NdjsonToMessageEnumerator < ::Enumerator
  # @return [NdjsonToMessageEnumerator] a new instance of NdjsonToMessageEnumerator
  #
  # source://cucumber-messages//lib/cucumber/messages/ndjson_to_message_enumerator.rb#6
  def initialize(io); end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1000
class Cucumber::Messages::ParameterType < ::Cucumber::Messages::Message
  # @return [ParameterType] a new instance of ParameterType
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1015
  def initialize(name: T.unsafe(nil), regular_expressions: T.unsafe(nil), prefer_for_regular_expression_match: T.unsafe(nil), use_for_snippets: T.unsafe(nil), id: T.unsafe(nil)); end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1013
  def id; end

  # The name is unique, so we don't need an id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1005
  def name; end

  # Returns the value of attribute prefer_for_regular_expression_match.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1009
  def prefer_for_regular_expression_match; end

  # Returns the value of attribute regular_expressions.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1007
  def regular_expressions; end

  # Returns the value of attribute use_for_snippets.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1011
  def use_for_snippets; end

  class << self
    # Returns a new ParameterType from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::ParameterType.from_h(some_hash) # => #<Cucumber::Messages::ParameterType:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#567
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1037
class Cucumber::Messages::ParseError < ::Cucumber::Messages::Message
  # @return [ParseError] a new instance of ParseError
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1043
  def initialize(source: T.unsafe(nil), message: T.unsafe(nil)); end

  # Returns the value of attribute message.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1041
  def message; end

  # Returns the value of attribute source.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1039
  def source; end

  class << self
    # Returns a new ParseError from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::ParseError.from_h(some_hash) # => #<Cucumber::Messages::ParseError:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#590
    def from_h(hash); end
  end
end

# Represents the Pickle message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# //// Pickles
#
# *
#  A `Pickle` represents a template for a `TestCase`. It is typically derived
#  from another format, such as [GherkinDocument](#io.cucumber.messages.GherkinDocument).
#  In the future a `Pickle` may be derived from other formats such as Markdown or
#  Excel files.
#
#  By making `Pickle` the main data structure Cucumber uses for execution, the
#  implementation of Cucumber itself becomes simpler, as it doesn't have to deal
#  with the complex structure of a [GherkinDocument](#io.cucumber.messages.GherkinDocument).
#
#  Each `PickleStep` of a `Pickle` is matched with a `StepDefinition` to create a `TestCase`
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1071
class Cucumber::Messages::Pickle < ::Cucumber::Messages::Message
  # @return [Pickle] a new instance of Pickle
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1114
  def initialize(id: T.unsafe(nil), uri: T.unsafe(nil), name: T.unsafe(nil), language: T.unsafe(nil), steps: T.unsafe(nil), tags: T.unsafe(nil), ast_node_ids: T.unsafe(nil)); end

  # *
  #  Points to the AST node locations of the pickle. The last one represents the unique
  #  id of the pickle. A pickle constructed from `Examples` will have the first
  #  id originating from the `Scenario` AST node, and the second from the `TableRow` AST node.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1112
  def ast_node_ids; end

  # *
  #  A unique id for the pickle
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1077
  def id; end

  # The language of the pickle
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1092
  def language; end

  # The name of the pickle
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1087
  def name; end

  # One or more steps
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1097
  def steps; end

  # *
  #  One or more tags. If this pickle is constructed from a Gherkin document,
  #  It includes inherited tags from the `Feature` as well.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1104
  def tags; end

  # The uri of the source file
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1082
  def uri; end

  class << self
    # Returns a new Pickle from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Pickle.from_h(some_hash) # => #<Cucumber::Messages::Pickle:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#610
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1140
class Cucumber::Messages::PickleDocString < ::Cucumber::Messages::Message
  # @return [PickleDocString] a new instance of PickleDocString
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1146
  def initialize(media_type: T.unsafe(nil), content: T.unsafe(nil)); end

  # Returns the value of attribute content.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1144
  def content; end

  # Returns the value of attribute media_type.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1142
  def media_type; end

  class << self
    # Returns a new PickleDocString from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleDocString.from_h(some_hash) # => #<Cucumber::Messages::PickleDocString:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#635
    def from_h(hash); end
  end
end

# Represents the PickleStep message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  An executable step
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1163
class Cucumber::Messages::PickleStep < ::Cucumber::Messages::Message
  # @return [PickleStep] a new instance of PickleStep
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1180
  def initialize(argument: T.unsafe(nil), ast_node_ids: T.unsafe(nil), id: T.unsafe(nil), text: T.unsafe(nil)); end

  # Returns the value of attribute argument.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1165
  def argument; end

  # References the IDs of the source of the step. For Gherkin, this can be
  #  the ID of a Step, and possibly also the ID of a TableRow
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1171
  def ast_node_ids; end

  # A unique ID for the PickleStep
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1176
  def id; end

  # Returns the value of attribute text.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1178
  def text; end

  class << self
    # Returns a new PickleStep from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleStep.from_h(some_hash) # => #<Cucumber::Messages::PickleStep:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#655
    def from_h(hash); end
  end
end

# Represents the PickleStepArgument message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# An optional argument
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1200
class Cucumber::Messages::PickleStepArgument < ::Cucumber::Messages::Message
  # @return [PickleStepArgument] a new instance of PickleStepArgument
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1206
  def initialize(doc_string: T.unsafe(nil), data_table: T.unsafe(nil)); end

  # Returns the value of attribute data_table.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1204
  def data_table; end

  # Returns the value of attribute doc_string.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1202
  def doc_string; end

  class << self
    # Returns a new PickleStepArgument from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleStepArgument.from_h(some_hash) # => #<Cucumber::Messages::PickleStepArgument:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#677
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1222
class Cucumber::Messages::PickleTable < ::Cucumber::Messages::Message
  # @return [PickleTable] a new instance of PickleTable
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1226
  def initialize(rows: T.unsafe(nil)); end

  # Returns the value of attribute rows.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1224
  def rows; end

  class << self
    # Returns a new PickleTable from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleTable.from_h(some_hash) # => #<Cucumber::Messages::PickleTable:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#697
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1240
class Cucumber::Messages::PickleTableCell < ::Cucumber::Messages::Message
  # @return [PickleTableCell] a new instance of PickleTableCell
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1244
  def initialize(value: T.unsafe(nil)); end

  # Returns the value of attribute value.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1242
  def value; end

  class << self
    # Returns a new PickleTableCell from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleTableCell.from_h(some_hash) # => #<Cucumber::Messages::PickleTableCell:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#716
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1258
class Cucumber::Messages::PickleTableRow < ::Cucumber::Messages::Message
  # @return [PickleTableRow] a new instance of PickleTableRow
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1262
  def initialize(cells: T.unsafe(nil)); end

  # Returns the value of attribute cells.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1260
  def cells; end

  class << self
    # Returns a new PickleTableRow from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleTableRow.from_h(some_hash) # => #<Cucumber::Messages::PickleTableRow:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#735
    def from_h(hash); end
  end
end

# Represents the PickleTag message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  A tag
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1277
class Cucumber::Messages::PickleTag < ::Cucumber::Messages::Message
  # @return [PickleTag] a new instance of PickleTag
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1286
  def initialize(name: T.unsafe(nil), ast_node_id: T.unsafe(nil)); end

  # Points to the AST node this was created from
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1284
  def ast_node_id; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1279
  def name; end

  class << self
    # Returns a new PickleTag from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::PickleTag.from_h(some_hash) # => #<Cucumber::Messages::PickleTag:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#754
    def from_h(hash); end
  end
end

# Represents the Product message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# Used to describe various properties of Meta
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#972
class Cucumber::Messages::Product < ::Cucumber::Messages::Message
  # @return [Product] a new instance of Product
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#984
  def initialize(name: T.unsafe(nil), version: T.unsafe(nil)); end

  # The product name
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#977
  def name; end

  # The product version
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#982
  def version; end

  class << self
    # Returns a new Product from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Product.from_h(some_hash) # => #<Cucumber::Messages::Product:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#547
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#533
class Cucumber::Messages::Rule < ::Cucumber::Messages::Message
  # @return [Rule] a new instance of Rule
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#555
  def initialize(location: T.unsafe(nil), tags: T.unsafe(nil), keyword: T.unsafe(nil), name: T.unsafe(nil), description: T.unsafe(nil), children: T.unsafe(nil), id: T.unsafe(nil)); end

  # Returns the value of attribute children.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#551
  def children; end

  # Returns the value of attribute description.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#549
  def description; end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#553
  def id; end

  # Returns the value of attribute keyword.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#545
  def keyword; end

  # The location of the `Rule` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#538
  def location; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#547
  def name; end

  # All the tags placed above the `Rule` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#543
  def tags; end

  class << self
    # Returns a new Rule from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Rule.from_h(some_hash) # => #<Cucumber::Messages::Rule:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#280
    def from_h(hash); end
  end
end

# Represents the RuleChild message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  A child node of a `Rule` node
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#582
class Cucumber::Messages::RuleChild < ::Cucumber::Messages::Message
  # @return [RuleChild] a new instance of RuleChild
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#588
  def initialize(background: T.unsafe(nil), scenario: T.unsafe(nil)); end

  # Returns the value of attribute background.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#584
  def background; end

  # Returns the value of attribute scenario.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#586
  def scenario; end

  class << self
    # Returns a new RuleChild from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::RuleChild.from_h(some_hash) # => #<Cucumber::Messages::RuleChild:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#305
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#604
class Cucumber::Messages::Scenario < ::Cucumber::Messages::Message
  # @return [Scenario] a new instance of Scenario
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#625
  def initialize(location: T.unsafe(nil), tags: T.unsafe(nil), keyword: T.unsafe(nil), name: T.unsafe(nil), description: T.unsafe(nil), steps: T.unsafe(nil), examples: T.unsafe(nil), id: T.unsafe(nil)); end

  # Returns the value of attribute description.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#617
  def description; end

  # Returns the value of attribute examples.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#621
  def examples; end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#623
  def id; end

  # Returns the value of attribute keyword.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#613
  def keyword; end

  # The location of the `Scenario` keyword
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#609
  def location; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#615
  def name; end

  # Returns the value of attribute steps.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#619
  def steps; end

  # Returns the value of attribute tags.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#611
  def tags; end

  class << self
    # Returns a new Scenario from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Scenario.from_h(some_hash) # => #<Cucumber::Messages::Scenario:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#325
    def from_h(hash); end
  end
end

# Represents the Source message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# //// Source
#
# *
#  A source file, typically a Gherkin document or Java/Ruby/JavaScript source code
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1305
class Cucumber::Messages::Source < ::Cucumber::Messages::Message
  # @return [Source] a new instance of Source
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1325
  def initialize(uri: T.unsafe(nil), data: T.unsafe(nil), media_type: T.unsafe(nil)); end

  # The contents of the file
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1317
  def data; end

  # The media type of the file. Can be used to specify custom types, such as
  #  text/x.cucumber.gherkin+plain
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1323
  def media_type; end

  # *
  #  The [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier)
  #  of the source, typically a file path relative to the root directory
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1312
  def uri; end

  class << self
    # Returns a new Source from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Source.from_h(some_hash) # => #<Cucumber::Messages::Source:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#774
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1895
class Cucumber::Messages::SourceMediaType; end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1897
Cucumber::Messages::SourceMediaType::TEXT_X_CUCUMBER_GHERKIN_MARKDOWN = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1896
Cucumber::Messages::SourceMediaType::TEXT_X_CUCUMBER_GHERKIN_PLAIN = T.let(T.unsafe(nil), String)

# Represents the SourceReference message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  Points to a [Source](#io.cucumber.messages.Source) identified by `uri` and a
#  [Location](#io.cucumber.messages.Location) within that file.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1345
class Cucumber::Messages::SourceReference < ::Cucumber::Messages::Message
  # @return [SourceReference] a new instance of SourceReference
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1355
  def initialize(uri: T.unsafe(nil), java_method: T.unsafe(nil), java_stack_trace_element: T.unsafe(nil), location: T.unsafe(nil)); end

  # Returns the value of attribute java_method.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1349
  def java_method; end

  # Returns the value of attribute java_stack_trace_element.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1351
  def java_stack_trace_element; end

  # Returns the value of attribute location.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1353
  def location; end

  # Returns the value of attribute uri.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1347
  def uri; end

  class << self
    # Returns a new SourceReference from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::SourceReference.from_h(some_hash) # => #<Cucumber::Messages::SourceReference:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#795
    def from_h(hash); end
  end
end

# Represents the Step message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# A step
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#653
class Cucumber::Messages::Step < ::Cucumber::Messages::Message
  # @return [Step] a new instance of Step
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#673
  def initialize(location: T.unsafe(nil), keyword: T.unsafe(nil), text: T.unsafe(nil), doc_string: T.unsafe(nil), data_table: T.unsafe(nil), id: T.unsafe(nil)); end

  # Returns the value of attribute data_table.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#666
  def data_table; end

  # Returns the value of attribute doc_string.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#664
  def doc_string; end

  # Unique ID to be able to reference the Step from PickleStep
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#671
  def id; end

  # Returns the value of attribute keyword.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#660
  def keyword; end

  # The location of the steps' `keyword`
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#658
  def location; end

  # Returns the value of attribute text.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#662
  def text; end

  class << self
    # Returns a new Step from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Step.from_h(some_hash) # => #<Cucumber::Messages::Step:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#351
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1427
class Cucumber::Messages::StepDefinition < ::Cucumber::Messages::Message
  # @return [StepDefinition] a new instance of StepDefinition
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1435
  def initialize(id: T.unsafe(nil), pattern: T.unsafe(nil), source_reference: T.unsafe(nil)); end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1429
  def id; end

  # Returns the value of attribute pattern.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1431
  def pattern; end

  # Returns the value of attribute source_reference.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1433
  def source_reference; end

  class << self
    # Returns a new StepDefinition from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::StepDefinition.from_h(some_hash) # => #<Cucumber::Messages::StepDefinition:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#859
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1453
class Cucumber::Messages::StepDefinitionPattern < ::Cucumber::Messages::Message
  # @return [StepDefinitionPattern] a new instance of StepDefinitionPattern
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1459
  def initialize(source: T.unsafe(nil), type: T.unsafe(nil)); end

  # Returns the value of attribute source.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1455
  def source; end

  # Returns the value of attribute type.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1457
  def type; end

  class << self
    # Returns a new StepDefinitionPattern from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::StepDefinitionPattern.from_h(some_hash) # => #<Cucumber::Messages::StepDefinitionPattern:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#880
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1900
class Cucumber::Messages::StepDefinitionPatternType; end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1901
Cucumber::Messages::StepDefinitionPatternType::CUCUMBER_EXPRESSION = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1902
Cucumber::Messages::StepDefinitionPatternType::REGULAR_EXPRESSION = T.let(T.unsafe(nil), String)

# Represents the StepMatchArgument message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  Represents a single argument extracted from a step match and passed to a step definition.
#  This is used for the following purposes:
#  - Construct an argument to pass to a step definition (possibly through a parameter type transform)
#  - Highlight the matched parameter in rich formatters such as the HTML formatter
#
#  This message closely matches the `Argument` class in the `cucumber-expressions` library.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1539
class Cucumber::Messages::StepMatchArgument < ::Cucumber::Messages::Message
  # @return [StepMatchArgument] a new instance of StepMatchArgument
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1550
  def initialize(group: T.unsafe(nil), parameter_type_name: T.unsafe(nil)); end

  # *
  #  Represents the outermost capture group of an argument. This message closely matches the
  #  `Group` class in the `cucumber-expressions` library.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1546
  def group; end

  # Returns the value of attribute parameter_type_name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1548
  def parameter_type_name; end

  class << self
    # Returns a new StepMatchArgument from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::StepMatchArgument.from_h(some_hash) # => #<Cucumber::Messages::StepMatchArgument:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#942
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1566
class Cucumber::Messages::StepMatchArgumentsList < ::Cucumber::Messages::Message
  # @return [StepMatchArgumentsList] a new instance of StepMatchArgumentsList
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1570
  def initialize(step_match_arguments: T.unsafe(nil)); end

  # Returns the value of attribute step_match_arguments.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1568
  def step_match_arguments; end

  class << self
    # Returns a new StepMatchArgumentsList from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::StepMatchArgumentsList.from_h(some_hash) # => #<Cucumber::Messages::StepMatchArgumentsList:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#962
    def from_h(hash); end
  end
end

# Represents the TableCell message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# A cell in a `TableRow`
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#697
class Cucumber::Messages::TableCell < ::Cucumber::Messages::Message
  # @return [TableCell] a new instance of TableCell
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#709
  def initialize(location: T.unsafe(nil), value: T.unsafe(nil)); end

  # The location of the cell
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#702
  def location; end

  # The value of the cell
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#707
  def value; end

  class << self
    # Returns a new TableCell from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TableCell.from_h(some_hash) # => #<Cucumber::Messages::TableCell:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#375
    def from_h(hash); end
  end
end

# Represents the TableRow message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# A row in a table
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#725
class Cucumber::Messages::TableRow < ::Cucumber::Messages::Message
  # @return [TableRow] a new instance of TableRow
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#739
  def initialize(location: T.unsafe(nil), cells: T.unsafe(nil), id: T.unsafe(nil)); end

  # Cells in the row
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#735
  def cells; end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#737
  def id; end

  # The location of the first cell in the row
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#730
  def location; end

  class << self
    # Returns a new TableRow from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TableRow.from_h(some_hash) # => #<Cucumber::Messages::TableRow:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#395
    def from_h(hash); end
  end
end

# Represents the Tag message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  A tag
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#758
class Cucumber::Messages::Tag < ::Cucumber::Messages::Message
  # @return [Tag] a new instance of Tag
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#775
  def initialize(location: T.unsafe(nil), name: T.unsafe(nil), id: T.unsafe(nil)); end

  # Unique ID to be able to reference the Tag from PickleTag
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#773
  def id; end

  # Location of the tag
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#763
  def location; end

  # The name of the tag (including the leading `@`)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#768
  def name; end

  class << self
    # Returns a new Tag from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Tag.from_h(some_hash) # => #<Cucumber::Messages::Tag:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#416
    def from_h(hash); end
  end
end

# Represents the TestCase message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# //// TestCases
#
# *
#  A `TestCase` contains a sequence of `TestStep`s.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1478
class Cucumber::Messages::TestCase < ::Cucumber::Messages::Message
  # @return [TestCase] a new instance of TestCase
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1489
  def initialize(id: T.unsafe(nil), pickle_id: T.unsafe(nil), test_steps: T.unsafe(nil)); end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1480
  def id; end

  # The ID of the `Pickle` this `TestCase` is derived from.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1485
  def pickle_id; end

  # Returns the value of attribute test_steps.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1487
  def test_steps; end

  class << self
    # Returns a new TestCase from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestCase.from_h(some_hash) # => #<Cucumber::Messages::TestCase:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#900
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1634
class Cucumber::Messages::TestCaseFinished < ::Cucumber::Messages::Message
  # @return [TestCaseFinished] a new instance of TestCaseFinished
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1642
  def initialize(test_case_started_id: T.unsafe(nil), timestamp: T.unsafe(nil), will_be_retried: T.unsafe(nil)); end

  # Returns the value of attribute test_case_started_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1636
  def test_case_started_id; end

  # Returns the value of attribute timestamp.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1638
  def timestamp; end

  # Returns the value of attribute will_be_retried.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1640
  def will_be_retried; end

  class << self
    # Returns a new TestCaseFinished from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestCaseFinished.from_h(some_hash) # => #<Cucumber::Messages::TestCaseFinished:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1004
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1660
class Cucumber::Messages::TestCaseStarted < ::Cucumber::Messages::Message
  # @return [TestCaseStarted] a new instance of TestCaseStarted
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1680
  def initialize(attempt: T.unsafe(nil), id: T.unsafe(nil), test_case_id: T.unsafe(nil), timestamp: T.unsafe(nil)); end

  # *
  #  The first attempt should have value 0, and for each retry the value
  #  should increase by 1.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1667
  def attempt; end

  # *
  #  Because a `TestCase` can be run multiple times (in case of a retry),
  #  we use this field to group messages relating to the same attempt.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1674
  def id; end

  # Returns the value of attribute test_case_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1676
  def test_case_id; end

  # Returns the value of attribute timestamp.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1678
  def timestamp; end

  class << self
    # Returns a new TestCaseStarted from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestCaseStarted.from_h(some_hash) # => #<Cucumber::Messages::TestCaseStarted:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1025
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1700
class Cucumber::Messages::TestRunFinished < ::Cucumber::Messages::Message
  # @return [TestRunFinished] a new instance of TestRunFinished
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1721
  def initialize(message: T.unsafe(nil), success: T.unsafe(nil), timestamp: T.unsafe(nil)); end

  # Error message. Can be a stack trace from a failed `BeforeAll` or `AfterAll`.
  #  If there are undefined parameter types, the message is simply
  #  "The following parameter type(s() are not defined: xxx, yyy".
  #  The independent `UndefinedParameterType` messages can be used to generate
  #  snippets for those parameter types.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1709
  def message; end

  # success = StrictModeEnabled ? (failed_count == 0 && ambiguous_count == 0 && undefined_count == 0 && pending_count == 0) : (failed_count == 0 && ambiguous_count == 0)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1714
  def success; end

  # Timestamp when the TestRun is finished
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1719
  def timestamp; end

  class << self
    # Returns a new TestRunFinished from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestRunFinished.from_h(some_hash) # => #<Cucumber::Messages::TestRunFinished:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1047
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1739
class Cucumber::Messages::TestRunStarted < ::Cucumber::Messages::Message
  # @return [TestRunStarted] a new instance of TestRunStarted
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1743
  def initialize(timestamp: T.unsafe(nil)); end

  # Returns the value of attribute timestamp.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1741
  def timestamp; end

  class << self
    # Returns a new TestRunStarted from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestRunStarted.from_h(some_hash) # => #<Cucumber::Messages::TestRunStarted:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1068
    def from_h(hash); end
  end
end

# Represents the TestStep message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
#
# *
#  A `TestStep` is derived from either a `PickleStep`
#  combined with a `StepDefinition`, or from a `Hook`.
#
# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1586
class Cucumber::Messages::TestStep < ::Cucumber::Messages::Message
  # @return [TestStep] a new instance of TestStep
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1612
  def initialize(hook_id: T.unsafe(nil), id: T.unsafe(nil), pickle_step_id: T.unsafe(nil), step_definition_ids: T.unsafe(nil), step_match_arguments_lists: T.unsafe(nil)); end

  # Pointer to the `Hook` (if derived from a Hook)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1591
  def hook_id; end

  # Returns the value of attribute id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1593
  def id; end

  # Pointer to the `PickleStep` (if derived from a `PickleStep`)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1598
  def pickle_step_id; end

  # Pointer to all the matching `StepDefinition`s (if derived from a `PickleStep`)
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1603
  def step_definition_ids; end

  # A list of list of StepMatchArgument (if derived from a `PickleStep`).
  #  Each element represents a matching step definition. A size of 0 means `UNDEFINED`,
  #  and a size of 2+ means `AMBIGUOUS`
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1610
  def step_match_arguments_lists; end

  class << self
    # Returns a new TestStep from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestStep.from_h(some_hash) # => #<Cucumber::Messages::TestStep:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#981
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1757
class Cucumber::Messages::TestStepFinished < ::Cucumber::Messages::Message
  # @return [TestStepFinished] a new instance of TestStepFinished
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1767
  def initialize(test_case_started_id: T.unsafe(nil), test_step_id: T.unsafe(nil), test_step_result: T.unsafe(nil), timestamp: T.unsafe(nil)); end

  # Returns the value of attribute test_case_started_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1759
  def test_case_started_id; end

  # Returns the value of attribute test_step_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1761
  def test_step_id; end

  # Returns the value of attribute test_step_result.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1763
  def test_step_result; end

  # Returns the value of attribute timestamp.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1765
  def timestamp; end

  class << self
    # Returns a new TestStepFinished from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestStepFinished.from_h(some_hash) # => #<Cucumber::Messages::TestStepFinished:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1087
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1787
class Cucumber::Messages::TestStepResult < ::Cucumber::Messages::Message
  # @return [TestStepResult] a new instance of TestStepResult
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1795
  def initialize(duration: T.unsafe(nil), message: T.unsafe(nil), status: T.unsafe(nil)); end

  # Returns the value of attribute duration.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1789
  def duration; end

  # Returns the value of attribute message.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1791
  def message; end

  # Returns the value of attribute status.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1793
  def status; end

  class << self
    # Returns a new TestStepResult from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestStepResult.from_h(some_hash) # => #<Cucumber::Messages::TestStepResult:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1109
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1905
class Cucumber::Messages::TestStepResultStatus; end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1911
Cucumber::Messages::TestStepResultStatus::AMBIGUOUS = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1912
Cucumber::Messages::TestStepResultStatus::FAILED = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1907
Cucumber::Messages::TestStepResultStatus::PASSED = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1909
Cucumber::Messages::TestStepResultStatus::PENDING = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1908
Cucumber::Messages::TestStepResultStatus::SKIPPED = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1910
Cucumber::Messages::TestStepResultStatus::UNDEFINED = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1906
Cucumber::Messages::TestStepResultStatus::UNKNOWN = T.let(T.unsafe(nil), String)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1813
class Cucumber::Messages::TestStepStarted < ::Cucumber::Messages::Message
  # @return [TestStepStarted] a new instance of TestStepStarted
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1821
  def initialize(test_case_started_id: T.unsafe(nil), test_step_id: T.unsafe(nil), timestamp: T.unsafe(nil)); end

  # Returns the value of attribute test_case_started_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1815
  def test_case_started_id; end

  # Returns the value of attribute test_step_id.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1817
  def test_step_id; end

  # Returns the value of attribute timestamp.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1819
  def timestamp; end

  class << self
    # Returns a new TestStepStarted from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::TestStepStarted.from_h(some_hash) # => #<Cucumber::Messages::TestStepStarted:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1130
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages/time_conversion.rb#3
module Cucumber::Messages::TimeConversion
  # source://cucumber-messages//lib/cucumber/messages/time_conversion.rb#26
  def duration_to_seconds(duration); end

  # source://cucumber-messages//lib/cucumber/messages/time_conversion.rb#17
  def seconds_to_duration(seconds_float); end

  # source://cucumber-messages//lib/cucumber/messages/time_conversion.rb#6
  def time_to_timestamp(time); end

  # source://cucumber-messages//lib/cucumber/messages/time_conversion.rb#13
  def timestamp_to_time(timestamp); end
end

# source://cucumber-messages//lib/cucumber/messages/time_conversion.rb#4
Cucumber::Messages::TimeConversion::NANOSECONDS_PER_SECOND = T.let(T.unsafe(nil), Integer)

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1839
class Cucumber::Messages::Timestamp < ::Cucumber::Messages::Message
  # @return [Timestamp] a new instance of Timestamp
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1856
  def initialize(seconds: T.unsafe(nil), nanos: T.unsafe(nil)); end

  # Non-negative fractions of a second at nanosecond resolution. Negative
  #  second values with fractions must still have non-negative nanos values
  #  that count forward in time. Must be from 0 to 999,999,999
  #  inclusive.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1854
  def nanos; end

  # Represents seconds of UTC time since Unix epoch
  #  1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
  #  9999-12-31T23:59:59Z inclusive.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1846
  def seconds; end

  class << self
    # Returns a new Timestamp from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::Timestamp.from_h(some_hash) # => #<Cucumber::Messages::Timestamp:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1151
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.dtos.rb#1872
class Cucumber::Messages::UndefinedParameterType < ::Cucumber::Messages::Message
  # @return [UndefinedParameterType] a new instance of UndefinedParameterType
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1878
  def initialize(expression: T.unsafe(nil), name: T.unsafe(nil)); end

  # Returns the value of attribute expression.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1874
  def expression; end

  # Returns the value of attribute name.
  #
  # source://cucumber-messages//lib/cucumber/messages.dtos.rb#1876
  def name; end

  class << self
    # Returns a new UndefinedParameterType from the given hash.
    # If the hash keys are camelCased, they are properly assigned to the
    # corresponding snake_cased attributes.
    #
    #   Cucumber::Messages::UndefinedParameterType.from_h(some_hash) # => #<Cucumber::Messages::UndefinedParameterType:0x... ...>
    #
    # source://cucumber-messages//lib/cucumber/messages.deserializers.rb#1171
    def from_h(hash); end
  end
end

# source://cucumber-messages//lib/cucumber/messages.rb#8
Cucumber::Messages::VERSION = T.let(T.unsafe(nil), String)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#11
Cucumber::OS_X = T.let(T.unsafe(nil), T.untyped)

# source://cucumber/8.0.0/lib/cucumber/platform.rb#13
Cucumber::RAILS = T.let(T.unsafe(nil), String)

# source://cucumber/8.0.0/lib/cucumber/platform.rb#15
Cucumber::RUBY = T.let(T.unsafe(nil), String)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#14
Cucumber::RUBY_1_9 = T.let(T.unsafe(nil), T.untyped)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#13
Cucumber::RUBY_2_0 = T.let(T.unsafe(nil), T.untyped)

# source://cucumber/8.0.0/lib/cucumber/platform.rb#14
Cucumber::RUBY_BINARY = T.let(T.unsafe(nil), String)

# source://cucumber/8.0.0/lib/cucumber/platform.rb#10
Cucumber::VERSION = T.let(T.unsafe(nil), String)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#10
Cucumber::WINDOWS = T.let(T.unsafe(nil), T.untyped)

# source://cucumber-core/11.0.0/lib/cucumber/core/platform.rb#12
Cucumber::WINDOWS_MRI = T.let(T.unsafe(nil), T.untyped)