module RBS
  module Test
    class TypeCheck
      def initialize: (self_class: Module, builder: DefinitionBuilder, sample_size: Integer, unchecked_classes: Array[Module], instance_class: Module, class_class: Module) -> void

      # Confirm if given `CallTrace` is compatible with `MethodType`
      #
      # Returns an array with detected errors.
      #
      def method_call: (Symbol, MethodType, CallTrace, errors: Array[Errors::t]) -> Array[Errors::t]

      # Test if given `value` is compatible to type
      #
      # Returns `true` if the value has the type.
      # 
      def value: (untyped value, Types::t) -> bool
    end
  end
end
