*/ public function allowedStates(): array; public function encode(string $tag, SessionContext $context): RequestFrame; /** * @return TResult */ public function handle(ResponseStream $responses, SessionContext $context): mixed; }