export interface HttpArgumentsHost { getRequest(): T; getResponse(): T; } export interface WsArgumentsHost { getData(): T; getClient(): T; } export interface RpcArgumentsHost { getData(): T; } export interface ArgumentsHost { getArgs = any[]>(): T; getArgByIndex(index: number): T; switchToRpc(): RpcArgumentsHost; switchToHttp(): HttpArgumentsHost; switchToWs(): WsArgumentsHost; }