1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\Type;
4:
5: use PhpParser\Node\Expr\MethodCall;
6: use PHPStan\Analyser\Scope;
7: use PHPStan\Analyser\SpecifiedTypes;
8: use PHPStan\Analyser\TypeSpecifierContext;
9: use PHPStan\Reflection\MethodReflection;
10:
11: /** @api */
12: interface MethodTypeSpecifyingExtension
13: {
14:
15: public function getClass(): string;
16:
17: public function isMethodSupported(MethodReflection $methodReflection, MethodCall $node, TypeSpecifierContext $context): bool;
18:
19: public function specifyTypes(MethodReflection $methodReflection, MethodCall $node, Scope $scope, TypeSpecifierContext $context): SpecifiedTypes;
20:
21: }
22: