class StrongJSON def initialize: { (self) -> void } -> any def let: (Symbol, ty) -> void include StrongJSON::Types end StrongJSON::VERSION: String interface StrongJSON::_Schema<'type> def coerce: (any, ?path: ::Array) -> 'type def =~: (any) -> bool def to_s: -> String def is_a?: (any) -> bool end type StrongJSON::ty = _Schema module StrongJSON::Types def object: <'x> (Hash) -> _Schema<'x> | () -> _Schema> def object?: <'x> (Hash) -> _Schema<'x | nil> def any: () -> _Schema def optional: <'x> (?_Schema<'x>) -> _Schema<'x | nil> | () -> _Schema def string: () -> _Schema def string?: () -> _Schema def number: () -> _Schema def number?: () -> _Schema def numeric: () -> _Schema def numeric?: () -> _Schema def boolean: () -> _Schema def boolean?: () -> _Schema def symbol: () -> _Schema def symbol?: () -> _Schema def array: <'x> (_Schema<'x>) -> _Schema> | () -> _Schema> def array?: <'x> (_Schema<'x>) -> _Schema?> def literal: <'x> ('x) -> _Schema<'x> def literal?: <'x> ('x) -> _Schema<'x?> def enum: <'x> (*_Schema) -> _Schema<'x> def enum?: <'x> (*_Schema) -> _Schema<'x?> def ignored: () -> _Schema def prohibited: () -> _Schema end