module StrongJSON::Type end StrongJSON::Type::NONE: any module StrongJSON::Type::Match: _Schema def =~: (any) -> bool def ===: (any) -> bool end type StrongJSON::base_type_name = :ignored | :any | :number | :string | :boolean | :numeric | :symbol | :prohibited class StrongJSON::Type::Base<'a> include Match attr_reader type: base_type_name def initialize: (base_type_name) -> any def test: (any) -> bool def coerce: (any, ?path: ::Array) -> 'a end class StrongJSON::Type::Optional<'t> include Match @type: _Schema<'t> def initialize: (_Schema<'t>) -> any def coerce: (any, ?path: ::Array) -> ('t | nil) end class StrongJSON::Type::Literal<'t> include Match attr_reader value: 't def initialize: ('t) -> any def coerce: (any, ?path: ::Array) -> 't end class StrongJSON::Type::Array<'t> include Match @type: _Schema<'t> def initialize: (_Schema<'t>) -> any def coerce: (any, ?path: ::Array) -> ::Array<'t> end class StrongJSON::Type::Object<'t> include Match @fields: Hash> def initialize: (Hash>) -> any def coerce: (any, ?path: ::Array) -> 't def test_value_type: <'x, 'y> (::Array, _Schema<'x>, any) { ('x) -> 'y } -> 'y def merge: (Object | Hash>) -> Object def except: (*Symbol) -> Object end class StrongJSON::Type::Enum<'t> include Match attr_reader types: ::Array<_Schema> def initialize: (::Array<_Schema>) -> any def coerce: (any, ?path: ::Array) -> 't end class StrongJSON::Type::Error attr_reader path: ::Array attr_reader type: ty attr_reader value: any def initialize: (path: ::Array, type: ty, value: any) -> any end class StrongJSON::Type::UnexpectedFieldError attr_reader path: ::Array attr_reader value: any def initialize: (path: ::Array, value: any) -> any end class StrongJSON::Type::IllegalTypeError attr_reader type: ty def initialize: (type: ty) -> any end