hunk.code_window:     "react-native-infinite-scroll-view": "^0.4.5",
       "react-navigation": "^3.9.0",
       "react-navigation-material-bottom-tabs": "1.0.0",
       "react-redux": "^6.0.1",
       "react-timer-mixin": "^0.13.3",
       "redux": "^4.0.1",
       "redux-thunk": "^2.3.0",
       "sha1": "^1.1.1",
       "url": "^0.11.0"
  
hunk.labels: keep keep keep keep replace keep keep keep keep
hunk.file_path: home/package.json
hunk.type: replace
file: // Copyright (c) Facebook, Inc. and its affiliates.
  
  // This source code is licensed under the MIT license found in the
  // LICENSE file in the root directory of this source tree.
  
  #pragma once
  
  #include <string>
  #include <vector>
  
  #include <folly/Optional.h>
  #include <folly/dynamic.h>
  
  namespace facebook {
  namespace react {
  
  struct MethodDescriptor {
    std::string name;
    // type is one of js MessageQueue.MethodTypes
    std::string type;
  
    MethodDescriptor(std::string n, std::string t)
        : name(std::move(n))
        , type(std::move(t)) {}
  };
  
    using MethodCallResult = folly::Optional<folly::dynamic>;
  
  class NativeModule {
   public:
    virtual ~NativeModule() {}
    virtual std::string getName() = 0;
    virtual std::vector<MethodDescriptor> getMethods() = 0;
    virtual folly::dynamic getConstants() = 0;
    virtual void invoke(unsigned int reactMethodId, folly::dynamic&& params, int callId) = 0;
    virtual MethodCallResult callSerializableNativeHook(unsigned int reactMethodId, folly::dynamic&& args) = 0;
  };
  
  }
  }
  