{
  "modules": {
    "NativeInAppPurchaseModule": {
      "type": "NativeModule",
      "aliasMap": {
        "FetchProductInput": {
          "type": "ObjectTypeAnnotation",
          "properties": [
            {
              "name": "id",
              "optional": false,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            },
            {
              "name": "type",
              "optional": true,
              "typeAnnotation": {
                "type": "UnionTypeAnnotation",
                "memberType": "StringTypeAnnotation"
              }
            },
            {
              "name": "planId",
              "optional": true,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            },
            {
              "name": "offerId",
              "optional": true,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            }
          ]
        },
        "Purchase": {
          "type": "ObjectTypeAnnotation",
          "properties": [
            {
              "name": "productIds",
              "optional": false,
              "typeAnnotation": {
                "type": "ArrayTypeAnnotation",
                "elementType": {
                  "type": "StringTypeAnnotation"
                }
              }
            },
            {
              "name": "transactionId",
              "optional": false,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            },
            {
              "name": "transactionDate",
              "optional": false,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            },
            {
              "name": "receipt",
              "optional": false,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            },
            {
              "name": "purchaseToken",
              "optional": false,
              "typeAnnotation": {
                "type": "StringTypeAnnotation"
              }
            }
          ]
        }
      },
      "enumMap": {},
      "spec": {
        "properties": [
          {
            "name": "getConstants",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "ObjectTypeAnnotation",
                "properties": []
              },
              "params": []
            }
          },
          {
            "name": "configure",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "PromiseTypeAnnotation",
                "elementType": {
                  "type": "BooleanTypeAnnotation"
                }
              },
              "params": [
                {
                  "name": "config",
                  "optional": true,
                  "typeAnnotation": {
                    "type": "ObjectTypeAnnotation",
                    "properties": [
                      {
                        "name": "isAlternativeBillingEnable",
                        "optional": true,
                        "typeAnnotation": {
                          "type": "BooleanTypeAnnotation"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "fetchProducts",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": [
                {
                  "name": "products",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "ArrayTypeAnnotation",
                    "elementType": {
                      "type": "TypeAliasTypeAnnotation",
                      "name": "FetchProductInput"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "flush",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "PromiseTypeAnnotation",
                "elementType": {
                  "type": "ArrayTypeAnnotation",
                  "elementType": {
                    "type": "TypeAliasTypeAnnotation",
                    "name": "Purchase"
                  }
                }
              },
              "params": []
            }
          },
          {
            "name": "purchase",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": [
                {
                  "name": "productId",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "StringTypeAnnotation"
                  }
                },
                {
                  "name": "args",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "UnionTypeAnnotation",
                    "memberType": "ObjectTypeAnnotation"
                  }
                }
              ]
            }
          },
          {
            "name": "finalize",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "PromiseTypeAnnotation",
                "elementType": {
                  "type": "VoidTypeAnnotation"
                }
              },
              "params": [
                {
                  "name": "purchase",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "TypeAliasTypeAnnotation",
                    "name": "Purchase"
                  }
                },
                {
                  "name": "isConsumable",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "BooleanTypeAnnotation"
                  }
                }
              ]
            }
          },
          {
            "name": "fetchReceipt",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "PromiseTypeAnnotation",
                "elementType": {
                  "type": "NullableTypeAnnotation",
                  "typeAnnotation": {
                    "type": "StringTypeAnnotation"
                  }
                }
              },
              "params": []
            }
          },
          {
            "name": "onFetchProducts",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": [
                {
                  "name": "listener",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "FunctionTypeAnnotation",
                    "returnTypeAnnotation": {
                      "type": "VoidTypeAnnotation"
                    },
                    "params": [
                      {
                        "name": "products",
                        "optional": false,
                        "typeAnnotation": {
                          "type": "ArrayTypeAnnotation",
                          "elementType": {
                            "type": "ObjectTypeAnnotation",
                            "properties": [
                              {
                                "name": "id",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "productId",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "type",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "planId",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "offerId",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "title",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "description",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "price",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              },
                              {
                                "name": "currency",
                                "optional": false,
                                "typeAnnotation": {
                                  "type": "StringTypeAnnotation"
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "onPurchase",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": [
                {
                  "name": "listener",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "FunctionTypeAnnotation",
                    "returnTypeAnnotation": {
                      "type": "VoidTypeAnnotation"
                    },
                    "params": [
                      {
                        "name": "purchase",
                        "optional": false,
                        "typeAnnotation": {
                          "type": "ObjectTypeAnnotation",
                          "properties": [
                            {
                              "name": "productIds",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "ArrayTypeAnnotation",
                                "elementType": {
                                  "type": "StringTypeAnnotation"
                                }
                              }
                            },
                            {
                              "name": "transactionId",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "StringTypeAnnotation"
                              }
                            },
                            {
                              "name": "transactionDate",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "StringTypeAnnotation"
                              }
                            },
                            {
                              "name": "receipt",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "StringTypeAnnotation"
                              }
                            },
                            {
                              "name": "purchaseToken",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "StringTypeAnnotation"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "onAlternativeBillingFlow",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": [
                {
                  "name": "listener",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "FunctionTypeAnnotation",
                    "returnTypeAnnotation": {
                      "type": "VoidTypeAnnotation"
                    },
                    "params": [
                      {
                        "name": "token",
                        "optional": false,
                        "typeAnnotation": {
                          "type": "StringTypeAnnotation"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "onError",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": [
                {
                  "name": "listener",
                  "optional": false,
                  "typeAnnotation": {
                    "type": "FunctionTypeAnnotation",
                    "returnTypeAnnotation": {
                      "type": "VoidTypeAnnotation"
                    },
                    "params": [
                      {
                        "name": "exception",
                        "optional": false,
                        "typeAnnotation": {
                          "type": "ObjectTypeAnnotation",
                          "properties": [
                            {
                              "name": "code",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "NumberTypeAnnotation"
                              }
                            },
                            {
                              "name": "message",
                              "optional": false,
                              "typeAnnotation": {
                                "type": "StringTypeAnnotation"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "clear",
            "optional": false,
            "typeAnnotation": {
              "type": "FunctionTypeAnnotation",
              "returnTypeAnnotation": {
                "type": "VoidTypeAnnotation"
              },
              "params": []
            }
          }
        ]
      },
      "moduleName": "NativeInAppPurchase"
    }
  }
}