# typed: strict
# ----------------------------------------------------------------------------
#
#  Welcome to Baml! To use this generated code, please run the following:
#
#  $ gem install baml
#
# ----------------------------------------------------------------------------

# This file was generated by BAML: please do not edit it. Instead, edit the
# BAML files and re-generate this code using: baml-cli generate
# baml-cli is available with the baml package.
# gem install baml
require "sorbet-runtime"
require "baml"

module BamlClient

  module StreamTypes

  class StreamState < T::Struct
      extend T::Sig
      extend T::Generic
      Value = type_member
      const :value, Value
      const :state, Symbol
  end
  # #########################################################################
  # Generated classes (4)
  # #########################################################################


  class ClassWithBlockDone < T::Struct
      include Baml::Sorbet::Struct
      const :i_16_digits, T.nilable(Integer)
      const :s_20_words, T.nilable(String)
  end


  class ClassWithoutDone < T::Struct
      include Baml::Sorbet::Struct
      const :i_16_digits, T.nilable(Integer)
      const :s_20_words, StreamState[T.nilable(String)]
  end


  class SemanticContainer < T::Struct
      include Baml::Sorbet::Struct
      const :sixteen_digit_number, T.nilable(Integer)
      const :string_with_twenty_words, T.nilable(String)
      const :class_1, T.nilable(ClassWithoutDone)
      const :class_2, T.nilable(BamlClient::Types::ClassWithBlockDone)
      const :class_done_needed, BamlClient::Types::ClassWithBlockDone
      const :class_needed, ClassWithoutDone
      const :three_small_things, T::Array[SmallThing]
      const :final_string, T.nilable(String)
  end


  class SmallThing < T::Struct
      include Baml::Sorbet::Struct
      const :i_16_digits, Integer
      const :i_8_digits, T.nilable(Integer)
  end

  # #########################################################################
  # Generated type aliases (0)
  # #########################################################################


  end


end
