@snagsolutions/sdk 0.1.0-alpha.17 → 0.1.0-alpha.170

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/CHANGELOG.md +1400 -0
  2. package/README.md +13 -23
  3. package/core.d.ts +19 -5
  4. package/core.d.ts.map +1 -1
  5. package/core.js +24 -17
  6. package/core.js.map +1 -1
  7. package/core.mjs +24 -17
  8. package/core.mjs.map +1 -1
  9. package/index.d.mts +9 -6
  10. package/index.d.ts +9 -6
  11. package/index.d.ts.map +1 -1
  12. package/index.js +8 -4
  13. package/index.js.map +1 -1
  14. package/index.mjs +9 -5
  15. package/index.mjs.map +1 -1
  16. package/package.json +4 -5
  17. package/resource.d.ts +1 -1
  18. package/resource.d.ts.map +1 -1
  19. package/resource.js.map +1 -1
  20. package/resource.mjs.map +1 -1
  21. package/resources/assets.d.ts +16 -2
  22. package/resources/assets.d.ts.map +1 -1
  23. package/resources/assets.js +8 -0
  24. package/resources/assets.js.map +1 -1
  25. package/resources/assets.mjs +8 -0
  26. package/resources/assets.mjs.map +1 -1
  27. package/resources/auctions/auctions.d.ts +285 -0
  28. package/resources/auctions/auctions.d.ts.map +1 -0
  29. package/resources/auctions/auctions.js +76 -0
  30. package/resources/auctions/auctions.js.map +1 -0
  31. package/resources/auctions/auctions.mjs +49 -0
  32. package/resources/auctions/auctions.mjs.map +1 -0
  33. package/resources/auctions/index.d.ts +3 -0
  34. package/resources/auctions/index.d.ts.map +1 -0
  35. package/resources/auctions/index.js +9 -0
  36. package/resources/auctions/index.js.map +1 -0
  37. package/resources/auctions/index.mjs +4 -0
  38. package/resources/auctions/index.mjs.map +1 -0
  39. package/resources/auctions/website-user-attributes/index.d.ts +3 -0
  40. package/resources/auctions/website-user-attributes/index.d.ts.map +1 -0
  41. package/resources/auctions/website-user-attributes/index.js +9 -0
  42. package/resources/auctions/website-user-attributes/index.js.map +1 -0
  43. package/resources/auctions/website-user-attributes/index.mjs +4 -0
  44. package/resources/auctions/website-user-attributes/index.mjs.map +1 -0
  45. package/resources/auctions/website-user-attributes/values.d.ts +76 -0
  46. package/resources/auctions/website-user-attributes/values.d.ts.map +1 -0
  47. package/resources/auctions/website-user-attributes/values.js +35 -0
  48. package/resources/auctions/website-user-attributes/values.js.map +1 -0
  49. package/resources/auctions/website-user-attributes/values.mjs +31 -0
  50. package/resources/auctions/website-user-attributes/values.mjs.map +1 -0
  51. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts +92 -0
  52. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts.map +1 -0
  53. package/resources/auctions/website-user-attributes/website-user-attributes.js +69 -0
  54. package/resources/auctions/website-user-attributes/website-user-attributes.js.map +1 -0
  55. package/resources/auctions/website-user-attributes/website-user-attributes.mjs +42 -0
  56. package/resources/auctions/website-user-attributes/website-user-attributes.mjs.map +1 -0
  57. package/resources/auctions/website-user-attributes.d.ts +2 -0
  58. package/resources/auctions/website-user-attributes.d.ts.map +1 -0
  59. package/resources/auctions/website-user-attributes.js +19 -0
  60. package/resources/auctions/website-user-attributes.js.map +1 -0
  61. package/resources/auctions/website-user-attributes.mjs +3 -0
  62. package/resources/auctions/website-user-attributes.mjs.map +1 -0
  63. package/resources/auctions.d.ts +1 -133
  64. package/resources/auctions.d.ts.map +1 -1
  65. package/resources/auctions.js +15 -22
  66. package/resources/auctions.js.map +1 -1
  67. package/resources/auctions.mjs +1 -20
  68. package/resources/auctions.mjs.map +1 -1
  69. package/resources/auth.d.ts +11 -3
  70. package/resources/auth.d.ts.map +1 -1
  71. package/resources/auth.js.map +1 -1
  72. package/resources/auth.mjs.map +1 -1
  73. package/resources/index.d.ts +3 -3
  74. package/resources/index.d.ts.map +1 -1
  75. package/resources/index.js +1 -1
  76. package/resources/index.js.map +1 -1
  77. package/resources/index.mjs +2 -2
  78. package/resources/index.mjs.map +1 -1
  79. package/resources/loyalty/account-streaks.d.ts +81 -0
  80. package/resources/loyalty/account-streaks.d.ts.map +1 -0
  81. package/resources/loyalty/account-streaks.js +24 -0
  82. package/resources/loyalty/account-streaks.js.map +1 -0
  83. package/resources/loyalty/account-streaks.mjs +20 -0
  84. package/resources/loyalty/account-streaks.mjs.map +1 -0
  85. package/resources/loyalty/accounts.d.ts +58 -16
  86. package/resources/loyalty/accounts.d.ts.map +1 -1
  87. package/resources/loyalty/accounts.js +13 -0
  88. package/resources/loyalty/accounts.js.map +1 -1
  89. package/resources/loyalty/accounts.mjs +13 -0
  90. package/resources/loyalty/accounts.mjs.map +1 -1
  91. package/resources/loyalty/badges.d.ts +472 -22
  92. package/resources/loyalty/badges.d.ts.map +1 -1
  93. package/resources/loyalty/badges.js +19 -1
  94. package/resources/loyalty/badges.js.map +1 -1
  95. package/resources/loyalty/badges.mjs +19 -1
  96. package/resources/loyalty/badges.mjs.map +1 -1
  97. package/resources/loyalty/currencies.d.ts +19 -0
  98. package/resources/loyalty/currencies.d.ts.map +1 -1
  99. package/resources/loyalty/currencies.js +19 -0
  100. package/resources/loyalty/currencies.js.map +1 -1
  101. package/resources/loyalty/currencies.mjs +19 -0
  102. package/resources/loyalty/currencies.mjs.map +1 -1
  103. package/resources/loyalty/index.d.ts +4 -4
  104. package/resources/loyalty/index.d.ts.map +1 -1
  105. package/resources/loyalty/index.js +5 -5
  106. package/resources/loyalty/index.js.map +1 -1
  107. package/resources/loyalty/index.mjs +2 -2
  108. package/resources/loyalty/index.mjs.map +1 -1
  109. package/resources/loyalty/loyalty.d.ts +10 -10
  110. package/resources/loyalty/loyalty.d.ts.map +1 -1
  111. package/resources/loyalty/loyalty.js +6 -6
  112. package/resources/loyalty/loyalty.js.map +1 -1
  113. package/resources/loyalty/loyalty.mjs +7 -7
  114. package/resources/loyalty/loyalty.mjs.map +1 -1
  115. package/resources/loyalty/multipliers.d.ts +39 -2
  116. package/resources/loyalty/multipliers.d.ts.map +1 -1
  117. package/resources/loyalty/multipliers.js +23 -0
  118. package/resources/loyalty/multipliers.js.map +1 -1
  119. package/resources/loyalty/multipliers.mjs +23 -0
  120. package/resources/loyalty/multipliers.mjs.map +1 -1
  121. package/resources/loyalty/questions-responses.d.ts +39 -0
  122. package/resources/loyalty/questions-responses.d.ts.map +1 -1
  123. package/resources/loyalty/questions-responses.js +9 -0
  124. package/resources/loyalty/questions-responses.js.map +1 -1
  125. package/resources/loyalty/questions-responses.mjs +9 -0
  126. package/resources/loyalty/questions-responses.mjs.map +1 -1
  127. package/resources/loyalty/questions.d.ts +37 -2
  128. package/resources/loyalty/questions.d.ts.map +1 -1
  129. package/resources/loyalty/questions.js +31 -0
  130. package/resources/loyalty/questions.js.map +1 -1
  131. package/resources/loyalty/questions.mjs +31 -0
  132. package/resources/loyalty/questions.mjs.map +1 -1
  133. package/resources/loyalty/rule-edits.d.ts +2626 -4
  134. package/resources/loyalty/rule-edits.d.ts.map +1 -1
  135. package/resources/loyalty/rule-edits.js +14 -0
  136. package/resources/loyalty/rule-edits.js.map +1 -1
  137. package/resources/loyalty/rule-edits.mjs +14 -0
  138. package/resources/loyalty/rule-edits.mjs.map +1 -1
  139. package/resources/loyalty/rule-groups.d.ts +273 -58
  140. package/resources/loyalty/rule-groups.d.ts.map +1 -1
  141. package/resources/loyalty/rule-groups.js +36 -0
  142. package/resources/loyalty/rule-groups.js.map +1 -1
  143. package/resources/loyalty/rule-groups.mjs +36 -0
  144. package/resources/loyalty/rule-groups.mjs.map +1 -1
  145. package/resources/loyalty/rules.d.ts +1887 -270
  146. package/resources/loyalty/rules.d.ts.map +1 -1
  147. package/resources/loyalty/rules.js +40 -9
  148. package/resources/loyalty/rules.js.map +1 -1
  149. package/resources/loyalty/rules.mjs +40 -9
  150. package/resources/loyalty/rules.mjs.map +1 -1
  151. package/resources/loyalty/transactions/index.d.ts +3 -0
  152. package/resources/loyalty/transactions/index.d.ts.map +1 -0
  153. package/resources/loyalty/transactions/index.js +9 -0
  154. package/resources/loyalty/transactions/index.js.map +1 -0
  155. package/resources/loyalty/transactions/index.mjs +4 -0
  156. package/resources/loyalty/transactions/index.mjs.map +1 -0
  157. package/resources/loyalty/transactions/rule-statuses.d.ts +61 -0
  158. package/resources/loyalty/transactions/rule-statuses.d.ts.map +1 -0
  159. package/resources/loyalty/transactions/rule-statuses.js +23 -0
  160. package/resources/loyalty/transactions/rule-statuses.js.map +1 -0
  161. package/resources/loyalty/transactions/rule-statuses.mjs +19 -0
  162. package/resources/loyalty/transactions/rule-statuses.mjs.map +1 -0
  163. package/resources/loyalty/transactions/transactions.d.ts +292 -0
  164. package/resources/loyalty/transactions/transactions.d.ts.map +1 -0
  165. package/resources/loyalty/transactions/transactions.js +61 -0
  166. package/resources/loyalty/transactions/transactions.js.map +1 -0
  167. package/resources/loyalty/transactions/transactions.mjs +34 -0
  168. package/resources/loyalty/transactions/transactions.mjs.map +1 -0
  169. package/resources/loyalty/transactions.d.ts +1 -247
  170. package/resources/loyalty/transactions.d.ts.map +1 -1
  171. package/resources/loyalty/transactions.js +15 -18
  172. package/resources/loyalty/transactions.js.map +1 -1
  173. package/resources/loyalty/transactions.mjs +1 -16
  174. package/resources/loyalty/transactions.mjs.map +1 -1
  175. package/resources/minting.d.ts +5 -5
  176. package/resources/minting.d.ts.map +1 -1
  177. package/resources/referral/referral.d.ts +11 -3
  178. package/resources/referral/referral.d.ts.map +1 -1
  179. package/resources/referral/referral.js +11 -5
  180. package/resources/referral/referral.js.map +1 -1
  181. package/resources/referral/referral.mjs +11 -5
  182. package/resources/referral/referral.mjs.map +1 -1
  183. package/resources/referral/users.d.ts +28 -1
  184. package/resources/referral/users.d.ts.map +1 -1
  185. package/resources/referral/users.js +14 -0
  186. package/resources/referral/users.js.map +1 -1
  187. package/resources/referral/users.mjs +14 -0
  188. package/resources/referral/users.mjs.map +1 -1
  189. package/resources/users/index.d.ts +1 -1
  190. package/resources/users/index.d.ts.map +1 -1
  191. package/resources/users/index.js.map +1 -1
  192. package/resources/users/index.mjs.map +1 -1
  193. package/resources/users/metadatas.d.ts +27 -0
  194. package/resources/users/metadatas.d.ts.map +1 -1
  195. package/resources/users/metadatas.js.map +1 -1
  196. package/resources/users/metadatas.mjs.map +1 -1
  197. package/resources/users/users.d.ts +159 -6
  198. package/resources/users/users.d.ts.map +1 -1
  199. package/resources/users/users.js +53 -1
  200. package/resources/users/users.js.map +1 -1
  201. package/resources/users/users.mjs +53 -1
  202. package/resources/users/users.mjs.map +1 -1
  203. package/resources/websites/index.d.ts +2 -2
  204. package/resources/websites/index.d.ts.map +1 -1
  205. package/resources/websites/index.js.map +1 -1
  206. package/resources/websites/index.mjs +2 -2
  207. package/resources/websites/index.mjs.map +1 -1
  208. package/resources/websites/website-collections.d.ts +0 -69
  209. package/resources/websites/website-collections.d.ts.map +1 -1
  210. package/resources/websites/website-collections.js +0 -16
  211. package/resources/websites/website-collections.js.map +1 -1
  212. package/resources/websites/website-collections.mjs +0 -16
  213. package/resources/websites/website-collections.mjs.map +1 -1
  214. package/resources/websites/website-user-roles.d.ts +23 -0
  215. package/resources/websites/website-user-roles.d.ts.map +1 -1
  216. package/resources/websites/website-user-roles.js +23 -0
  217. package/resources/websites/website-user-roles.js.map +1 -1
  218. package/resources/websites/website-user-roles.mjs +23 -0
  219. package/resources/websites/website-user-roles.mjs.map +1 -1
  220. package/resources/websites/websites.d.ts +8 -98
  221. package/resources/websites/websites.d.ts.map +1 -1
  222. package/resources/websites/websites.js +0 -6
  223. package/resources/websites/websites.js.map +1 -1
  224. package/resources/websites/websites.mjs +1 -7
  225. package/resources/websites/websites.mjs.map +1 -1
  226. package/src/core.ts +39 -16
  227. package/src/index.ts +30 -11
  228. package/src/resource.ts +1 -1
  229. package/src/resources/assets.ts +18 -2
  230. package/src/resources/auctions/auctions.ts +432 -0
  231. package/src/resources/auctions/index.ts +16 -0
  232. package/src/resources/auctions/website-user-attributes/index.ts +10 -0
  233. package/src/resources/auctions/website-user-attributes/values.ts +97 -0
  234. package/src/resources/auctions/website-user-attributes/website-user-attributes.ts +137 -0
  235. package/src/resources/auctions/website-user-attributes.ts +3 -0
  236. package/src/resources/auctions.ts +1 -207
  237. package/src/resources/auth.ts +14 -4
  238. package/src/resources/index.ts +12 -8
  239. package/src/resources/loyalty/account-streaks.ts +110 -0
  240. package/src/resources/loyalty/accounts.ts +63 -18
  241. package/src/resources/loyalty/badges.ts +567 -24
  242. package/src/resources/loyalty/currencies.ts +19 -0
  243. package/src/resources/loyalty/index.ts +12 -2
  244. package/src/resources/loyalty/loyalty.ts +33 -9
  245. package/src/resources/loyalty/multipliers.ts +43 -4
  246. package/src/resources/loyalty/questions-responses.ts +45 -0
  247. package/src/resources/loyalty/questions.ts +38 -2
  248. package/src/resources/loyalty/rule-edits.ts +3799 -97
  249. package/src/resources/loyalty/rule-groups.ts +465 -65
  250. package/src/resources/loyalty/rules.ts +2906 -313
  251. package/src/resources/loyalty/transactions/index.ts +10 -0
  252. package/src/resources/loyalty/transactions/rule-statuses.ts +87 -0
  253. package/src/resources/loyalty/transactions/transactions.ts +520 -0
  254. package/src/resources/loyalty/transactions.ts +1 -330
  255. package/src/resources/minting.ts +22 -5
  256. package/src/resources/referral/referral.ts +13 -11
  257. package/src/resources/referral/users.ts +33 -2
  258. package/src/resources/users/index.ts +4 -0
  259. package/src/resources/users/metadatas.ts +52 -0
  260. package/src/resources/users/users.ts +213 -5
  261. package/src/resources/websites/index.ts +2 -13
  262. package/src/resources/websites/website-collections.ts +1 -145
  263. package/src/resources/websites/website-user-roles.ts +23 -0
  264. package/src/resources/websites/websites.ts +8 -134
  265. package/src/version.ts +1 -1
  266. package/version.d.ts +1 -1
  267. package/version.d.ts.map +1 -1
  268. package/version.js +1 -1
  269. package/version.js.map +1 -1
  270. package/version.mjs +1 -1
  271. package/version.mjs.map +1 -1
  272. package/resources/loyalty/rule-chains.d.ts +0 -4
  273. package/resources/loyalty/rule-chains.d.ts.map +0 -1
  274. package/resources/loyalty/rule-chains.js +0 -9
  275. package/resources/loyalty/rule-chains.js.map +0 -1
  276. package/resources/loyalty/rule-chains.mjs +0 -5
  277. package/resources/loyalty/rule-chains.mjs.map +0 -1
  278. package/src/resources/loyalty/rule-chains.ts +0 -5
@@ -3,34 +3,92 @@ import * as Core from "../../core.js";
3
3
  export declare class Rules extends APIResource {
4
4
  /**
5
5
  * Create a new Loyalty Rule
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const rule = await client.loyalty.rules.create({
10
+ * amount: '10.5',
11
+ * effectiveEndTime: '2024-12-31T23:59:00Z',
12
+ * effectiveStartTime: '2024-01-01T00:00:00Z',
13
+ * endTime: '2024-12-31T23:59:00Z',
14
+ * frequency: 'daily',
15
+ * loyaltyCurrencyId: '456e1234-e89b-12d3-a456-426614174003',
16
+ * metadata: {},
17
+ * name: 'Referral Bonus Rule',
18
+ * organizationId: '123e4567-e89b-12d3-a456-426614174001',
19
+ * startTime: '2024-01-01T00:00:00Z',
20
+ * type: 'Bonus',
21
+ * websiteId: '123e4567-e89b-12d3-a456-426614174002',
22
+ * });
23
+ * ```
6
24
  */
7
25
  create(body: RuleCreateParams, options?: Core.RequestOptions): Core.APIPromise<RuleCreateResponse>;
8
26
  /**
9
27
  * Update an existing Loyalty Rule
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const rule = await client.loyalty.rules.update(
32
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
33
+ * {
34
+ * amount: '10.5',
35
+ * endTime: '2024-12-31T23:59:00Z',
36
+ * name: 'Daily Rewards Program',
37
+ * },
38
+ * );
39
+ * ```
10
40
  */
11
41
  update(id: string, body: RuleUpdateParams, options?: Core.RequestOptions): Core.APIPromise<RuleUpdateResponse>;
12
42
  /**
13
43
  * Retrieve configured loyalty rules with optional pagination and filters
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const rules = await client.loyalty.rules.list();
48
+ * ```
14
49
  */
15
50
  list(query?: RuleListParams, options?: Core.RequestOptions): Core.APIPromise<RuleListResponse>;
16
51
  list(options?: Core.RequestOptions): Core.APIPromise<RuleListResponse>;
17
52
  /**
18
53
  * Delete an existing Loyalty Rule
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const rule = await client.loyalty.rules.delete(
58
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
59
+ * );
60
+ * ```
19
61
  */
62
+ delete(id: string, params?: RuleDeleteParams, options?: Core.RequestOptions): Core.APIPromise<RuleDeleteResponse>;
20
63
  delete(id: string, options?: Core.RequestOptions): Core.APIPromise<RuleDeleteResponse>;
21
64
  /**
22
65
  * Verify a loyalty rule based on user action and reward them if applicable. This
23
66
  * endpoint currently only supports following rule types code_entry, text_input,
24
67
  * link_click, discord_member, connect_wallet, check_in, external_rule,
25
68
  * drip_x_follow, drip_x_new_tweet, drip_x_text_in_bio, drip_x_text_in_name,
26
- * drip_x_text_in_comment, drip_x_tweet, telegram_join, DiscordMessages
69
+ * drip_x_text_in_comment, drip_x_tweet, telegram_join, DiscordMessages,
70
+ * youtube_subscribers, youtube_comment, steam_wishlist
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * const response = await client.loyalty.rules.complete(
75
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
76
+ * );
77
+ * ```
27
78
  */
28
79
  complete(id: string, body?: RuleCompleteParams, options?: Core.RequestOptions): Core.APIPromise<RuleCompleteResponse>;
29
80
  complete(id: string, options?: Core.RequestOptions): Core.APIPromise<RuleCompleteResponse>;
30
81
  /**
31
- * This will return the processing status of quests for a specific user
82
+ * This will return the processing status of quests for a specific user and also
83
+ * the progress of the loyalty rule
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * const response = await client.loyalty.rules.getStatus();
88
+ * ```
32
89
  */
33
- getStatus(query: RuleGetStatusParams, options?: Core.RequestOptions): Core.APIPromise<RuleGetStatusResponse>;
90
+ getStatus(query?: RuleGetStatusParams, options?: Core.RequestOptions): Core.APIPromise<RuleGetStatusResponse>;
91
+ getStatus(options?: Core.RequestOptions): Core.APIPromise<RuleGetStatusResponse>;
34
92
  }
35
93
  export interface RuleCreateResponse {
36
94
  id: string;
@@ -77,7 +135,7 @@ export interface RuleCreateResponse {
77
135
  /**
78
136
  * Type of loyalty rule being created
79
137
  */
80
- type: 'Bonus' | 'BoughtOn' | 'BoughtWithRoyalties' | 'DiscordMessages' | 'Listing' | 'Lodging' | 'MintOn' | 'PoapClaim' | 'SnagSocialsConnected' | 'SnapshotFullset' | 'SnapshotHold' | 'SoldOn' | 'SoldWithRoyalties' | 'TokenHold' | 'TwitterBio' | 'TwitterHashTagPost' | 'Retweet' | 'check_in' | 'code_entry' | 'connect_wallet' | 'connected_discord' | 'connected_email' | 'connected_epic' | 'connected_steam' | 'connected_telegram' | 'connected_twitter' | 'create_partner_account' | 'discord_member' | 'drip_x_follow' | 'drip_x_new_tweet' | 'drip_x_text_in_bio' | 'drip_x_text_in_comment' | 'drip_x_text_in_name' | 'drip_x_tweet' | 'external_rule' | 'link_click' | 'manual_upload' | 'profile_completed' | 'referred_user' | 'smart_contract_event' | 'snapshot_governance' | 'telegram_join' | 'telegram_messages' | 'text_input' | 'token_hold_erc20' | 'tweet_liked_by_project' | 'twitter_comment' | 'twitter_follow' | 'twitter_followers' | 'twitter_like' | 'twitter_post_hashtag' | 'quiz' | 'poll';
138
+ type: 'Bonus' | 'BoughtOn' | 'BoughtWithRoyalties' | 'DiscordMessages' | 'Listing' | 'Lodging' | 'MintOn' | 'PoapClaim' | 'SnagSocialsConnected' | 'SnapshotFullset' | 'SnapshotHold' | 'SoldOn' | 'SoldWithRoyalties' | 'TokenHold' | 'TwitterBio' | 'TwitterHashTagPost' | 'Retweet' | 'check_in' | 'code_entry' | 'connect_wallet' | 'connected_discord' | 'connected_email' | 'connected_epic' | 'connected_steam' | 'connected_telegram' | 'connected_twitter' | 'create_partner_account' | 'discord_member' | 'drip_x_follow' | 'drip_x_new_tweet' | 'drip_x_text_in_bio' | 'drip_x_text_in_comment' | 'drip_x_text_in_name' | 'drip_x_tweet' | 'external_rule' | 'link_click' | 'manual_upload' | 'profile_completed' | 'referred_user' | 'smart_contract_event' | 'snapshot_governance' | 'telegram_join' | 'telegram_messages' | 'text_input' | 'token_hold_erc20' | 'tweet_liked_by_project' | 'twitter_comment' | 'twitter_follow' | 'twitter_followers' | 'twitter_like' | 'twitter_post_hashtag' | 'quiz' | 'poll' | 'steam_wishlist' | 'liquidity_uniswap_v2' | 'liquidity_uniswap_v3' | 'points_airdrop' | 'youtube_subscribers' | 'youtube_comment' | 'shopify_spend' | 'swap' | 'tiktok_post' | 'post_impressions' | 'discord_join' | 'connected_youtube' | 'connected_tiktok';
81
139
  /**
82
140
  * Unique identifier for the associated website
83
141
  */
@@ -86,6 +144,10 @@ export interface RuleCreateResponse {
86
144
  * URL of the background asset to be displayed
87
145
  */
88
146
  backgroundAssetUrl?: string;
147
+ /**
148
+ * The type of claim for the reward
149
+ */
150
+ claimType?: 'manual' | 'auto' | null;
89
151
  /**
90
152
  * Blockchain address of the associated collection
91
153
  */
@@ -106,6 +168,11 @@ export interface RuleCreateResponse {
106
168
  * Optional detailed description of the rule
107
169
  */
108
170
  description?: string;
171
+ duplicatedFromId?: string | null;
172
+ /**
173
+ * ID of the external integration
174
+ */
175
+ externalIntegrationId?: string | null;
109
176
  /**
110
177
  * Whether to hide this rule in the user interface
111
178
  */
@@ -113,15 +180,33 @@ export interface RuleCreateResponse {
113
180
  /**
114
181
  * Interval between rule executions
115
182
  */
116
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
183
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
117
184
  /**
118
185
  * Whether this rule is mandatory
119
186
  */
120
187
  isRequired?: boolean;
188
+ /**
189
+ * Unique identifier for the loyalty badge
190
+ */
191
+ loyaltyBadgeId?: string | null;
121
192
  /**
122
193
  * Unique identifier for the loyalty rule group
123
194
  */
124
195
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
196
+ /**
197
+ * URL for uploading loyalty user allotment via CSV
198
+ */
199
+ loyaltyUserAllotmentCsvUrl?: string;
200
+ /**
201
+ * The interval for the max amount. Available for the smart contract and external
202
+ * rules.
203
+ */
204
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
205
+ /**
206
+ * The maximum amount of points a user can earn per interval. Available for the
207
+ * smart contract and external rules.
208
+ */
209
+ maxAmountPerInterval?: number | null;
125
210
  /**
126
211
  * URL of the media to be displayed
127
212
  */
@@ -129,25 +214,41 @@ export interface RuleCreateResponse {
129
214
  /**
130
215
  * Blockchain network where the rule will apply
131
216
  */
132
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
217
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
133
218
  /**
134
219
  * OAuth credentials associated with the rule
135
220
  */
136
221
  oauthCredentialsId?: string | null;
222
+ /**
223
+ * The lifetime of the reward
224
+ */
225
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
137
226
  /**
138
227
  * Type of reward issued by the rule
139
228
  */
140
- rewardType?: 'points' | 'multiplier';
229
+ rewardType?: 'points' | 'multiplier' | 'badge';
230
+ /**
231
+ * URL of the Shopify store
232
+ */
233
+ shopifyStoreUrl?: string | null;
141
234
  /**
142
- * Identifier for associated subscriptions
235
+ * Whether to show this rule before the start time
143
236
  */
144
- subscriptionIdentifier?: string | null;
237
+ showBeforeStart?: boolean;
238
+ /**
239
+ * Optional subscription id for the rule
240
+ */
241
+ subscriptionId?: string | null;
145
242
  }
146
243
  export declare namespace RuleCreateResponse {
147
244
  /**
148
245
  * Additional metadata for the loyalty rule
149
246
  */
150
247
  interface Metadata {
248
+ /**
249
+ * Number of tokens per batch.
250
+ */
251
+ batchSize?: number | null;
151
252
  /**
152
253
  * Text displayed on the action button.
153
254
  */
@@ -167,7 +268,7 @@ export declare namespace RuleCreateResponse {
167
268
  /**
168
269
  * Text to check in the Twitter post, username, or bio.
169
270
  */
170
- checkText?: string | null;
271
+ checkText?: string | Array<string> | null;
171
272
  /**
172
273
  * Array of collections associated with the rule.
173
274
  */
@@ -175,7 +276,13 @@ export declare namespace RuleCreateResponse {
175
276
  /**
176
277
  * Conditions for completing the profile.
177
278
  */
178
- completeProfileConditions?: Record<string, boolean> | null;
279
+ completeProfileConditions?: {
280
+ [key: string]: boolean;
281
+ } | null;
282
+ /**
283
+ * Description of the external rule condition (only for external rules)
284
+ */
285
+ conditionDescription?: string;
179
286
  /**
180
287
  * Object containing details for the call-to-action.
181
288
  */
@@ -184,6 +291,10 @@ export declare namespace RuleCreateResponse {
184
291
  * API key for custom rewards integration.
185
292
  */
186
293
  customRewardsApiKey?: string;
294
+ /**
295
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
296
+ */
297
+ directRpc?: boolean;
187
298
  /**
188
299
  * Array of Discord servers, channels, and roles to join.
189
300
  */
@@ -204,6 +315,10 @@ export declare namespace RuleCreateResponse {
204
315
  * Flag indicating whether the verified multiplier is enabled.
205
316
  */
206
317
  enableVerifiedMultiplier?: boolean;
318
+ /**
319
+ * Type of ERC20 token for the loyalty rule.
320
+ */
321
+ erc20Type?: 'erc20' | 'native';
207
322
  /**
208
323
  * Fill source of the order for the token sale
209
324
  */
@@ -220,10 +335,6 @@ export declare namespace RuleCreateResponse {
220
335
  * Indicates if the item has never been sold.
221
336
  */
222
337
  hasNeverSold?: boolean;
223
- /**
224
- * Flag indicating whether the order source is included.
225
- */
226
- hasOrderSource?: boolean;
227
338
  /**
228
339
  * Indicates if the full royalty has been paid for items.
229
340
  */
@@ -240,10 +351,18 @@ export declare namespace RuleCreateResponse {
240
351
  * URL of the image associated with the rule.
241
352
  */
242
353
  imageUrl?: string | null;
354
+ /**
355
+ * If enabled, the first transaction done on the platform will complete this rule
356
+ */
357
+ isCheckInOnEveryTxn?: boolean;
243
358
  /**
244
359
  * Indicates if the multiplier has been applied to rewards.
245
360
  */
246
361
  isMultiplierApplied?: boolean;
362
+ /**
363
+ * Flag indicating if the rule is restricted to new users.
364
+ */
365
+ isRestrictedToNewUsers?: boolean;
247
366
  /**
248
367
  * Flag indicating if rewards are applied retroactively.
249
368
  */
@@ -256,6 +375,10 @@ export declare namespace RuleCreateResponse {
256
375
  * Optional link associated with the metadata.
257
376
  */
258
377
  link?: string | null;
378
+ /**
379
+ * Liquidity pool details.
380
+ */
381
+ liquidity?: Metadata.Liquidity;
259
382
  /**
260
383
  * Maximum quantity constraint for token holding.
261
384
  */
@@ -288,14 +411,22 @@ export declare namespace RuleCreateResponse {
288
411
  * give points for only one token ownership per contract
289
412
  */
290
413
  onlyRewardSingleTokenOwnership?: boolean | null;
291
- /**
292
- * Order source of the order for the token sale
293
- */
294
- orderSource?: string;
295
414
  /**
296
415
  * Promotional code associated with the rule.
297
416
  */
298
417
  promoCode?: string;
418
+ /**
419
+ * URL of the CSV file containing promo codes.
420
+ */
421
+ promoCodeCsvUrl?: string;
422
+ /**
423
+ * Numbers of the promotional code to be generated.
424
+ */
425
+ promoCodeLength?: number | null;
426
+ /**
427
+ * Type of the promotional code.
428
+ */
429
+ promoCodeType?: 'code' | 'csv' | 'generate';
299
430
  /**
300
431
  * Array defining ranges and corresponding rewards.
301
432
  */
@@ -308,10 +439,51 @@ export declare namespace RuleCreateResponse {
308
439
  * Lump sum reward given to a referrer.
309
440
  */
310
441
  referrerReward?: number | null;
442
+ /**
443
+ * Loyalty currency ID of the referrer reward.
444
+ */
445
+ referrerRewardLoyaltyCurrencyId?: string | null;
446
+ /**
447
+ * Flag indicating if the post link is required.
448
+ */
449
+ requirePostLink?: boolean | null;
450
+ /**
451
+ * Flag indicating if media metadata is required.
452
+ */
453
+ requirePostMediaLink?: boolean | null;
454
+ /**
455
+ * Flag indicating if the rule can also reward badges per range.
456
+ */
457
+ rewardBadgePerRange?: boolean;
458
+ /**
459
+ * Flag indicating if the reward is rewarded by batch.
460
+ */
461
+ rewardByBatch?: boolean | null;
462
+ /**
463
+ * Criteria to evaluate the reward.
464
+ */
465
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
466
+ /**
467
+ * Flag indicating if the reward is rewarded per action.
468
+ */
469
+ rewardPerAction?: boolean | null;
311
470
  /**
312
471
  * Flag indicating if rewards are given per impression.
313
472
  */
314
473
  rewardPerImpression?: boolean | null;
474
+ /**
475
+ * Flag indicating if the rule should reward based on value of traded tokens
476
+ * instead of count.
477
+ */
478
+ rewardPerValue?: boolean;
479
+ /**
480
+ * Wallet address of the user can only be used if userId is not provided
481
+ */
482
+ royaltyAddress?: string;
483
+ /**
484
+ * Royalty percentage of the item.
485
+ */
486
+ royaltyPercentage?: number;
315
487
  /**
316
488
  * Currency associated with sales.
317
489
  */
@@ -335,7 +507,7 @@ export declare namespace RuleCreateResponse {
335
507
  /**
336
508
  * Social media platform associated with the rule.
337
509
  */
338
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
510
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | null;
339
511
  /**
340
512
  * URL of the social platform's logo.
341
513
  */
@@ -344,10 +516,18 @@ export declare namespace RuleCreateResponse {
344
516
  * Name of the social platform.
345
517
  */
346
518
  socialPlatformName?: string | null;
519
+ /**
520
+ * ID of the Steam app.
521
+ */
522
+ steamAppId?: string | null;
347
523
  /**
348
524
  * Array of streak milestones and corresponding rewards.
349
525
  */
350
526
  streakArray?: Array<Metadata.StreakArray> | null;
527
+ /**
528
+ * Metadata for swap loyalty rules
529
+ */
530
+ swap?: Metadata.Swap;
351
531
  /**
352
532
  * ID of the Telegram channel.
353
533
  */
@@ -360,6 +540,11 @@ export declare namespace RuleCreateResponse {
360
540
  * Flag indicating if all contracts are tracked.
361
541
  */
362
542
  trackAllContracts?: boolean | null;
543
+ /**
544
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
545
+ * completed once the progress is 100%.
546
+ */
547
+ trackProgress?: boolean | null;
363
548
  /**
364
549
  * URL of the associated Twitter account.
365
550
  */
@@ -395,7 +580,15 @@ export declare namespace RuleCreateResponse {
395
580
  /**
396
581
  * Type of wallet associated with the rule.
397
582
  */
398
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
583
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | null;
584
+ /**
585
+ * ID of the Youtube channel.
586
+ */
587
+ youtubeChannelId?: string | null;
588
+ /**
589
+ * ID of the Youtube video.
590
+ */
591
+ youtubeVideoId?: string | null;
399
592
  }
400
593
  namespace Metadata {
401
594
  interface Collection {
@@ -410,7 +603,7 @@ export declare namespace RuleCreateResponse {
410
603
  /**
411
604
  * Blockchain network of the collection.
412
605
  */
413
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
606
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
414
607
  }
415
608
  /**
416
609
  * Object containing details for the call-to-action.
@@ -475,6 +668,49 @@ export declare namespace RuleCreateResponse {
475
668
  */
476
669
  id: string;
477
670
  }
671
+ /**
672
+ * Liquidity pool details.
673
+ */
674
+ interface Liquidity {
675
+ /**
676
+ * Calculation type of the liquidity pool.
677
+ */
678
+ calculationType?: 'fixed' | 'custom';
679
+ /**
680
+ * Custom function to calculate the the reward amount based on the liquidity
681
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
682
+ * USD.
683
+ */
684
+ customFunction?: string;
685
+ /**
686
+ * Liquidity provided per day in USD
687
+ */
688
+ liquidityPerDay?: number;
689
+ /**
690
+ * Blockchain network of the liquidity pool.
691
+ */
692
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
693
+ /**
694
+ * Indicates if only in-range liquidity is rewarded.
695
+ */
696
+ onlyRewardInRangeLiquidity?: boolean;
697
+ /**
698
+ * Array of liquidity pools associated with the rule.
699
+ */
700
+ pools?: Array<Liquidity.Pool>;
701
+ /**
702
+ * Protocol of the liquidity pool.
703
+ */
704
+ protocol?: string;
705
+ }
706
+ namespace Liquidity {
707
+ interface Pool {
708
+ /**
709
+ * Unique identifier of the liquidity pool.
710
+ */
711
+ id: string;
712
+ }
713
+ }
478
714
  interface Range {
479
715
  /**
480
716
  * Reward amount for this range.
@@ -488,6 +724,14 @@ export declare namespace RuleCreateResponse {
488
724
  * Start value of the range.
489
725
  */
490
726
  startRange: number;
727
+ /**
728
+ * ID of the loyalty badge for this range.
729
+ */
730
+ loyaltyBadgeId?: string;
731
+ /**
732
+ * Amount of the loyalty multiplier for this range.
733
+ */
734
+ loyaltyMultiplierAmount?: number;
491
735
  }
492
736
  /**
493
737
  * Object defining referral requirements.
@@ -531,18 +775,14 @@ export declare namespace RuleCreateResponse {
531
775
  * Object containing details of the associated smart contract.
532
776
  */
533
777
  interface SmartContract {
534
- /**
535
- * ABI of the smart contract.
536
- */
537
- abi?: string | null;
538
778
  /**
539
779
  * Mapping of addresses for the smart contract.
540
780
  */
541
781
  addressMapping?: string | null;
542
782
  /**
543
- * Array of bonus details applied to the rule.
783
+ * Object containing details of the amount multiplier from the event.
544
784
  */
545
- bonus?: Array<SmartContract.Bonus> | null;
785
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
546
786
  /**
547
787
  * ID of the smart contract.
548
788
  */
@@ -551,58 +791,28 @@ export declare namespace RuleCreateResponse {
551
791
  * Criteria to evaluate the smart contract event.
552
792
  */
553
793
  criteria?: 'everyEvent' | 'byParameter' | null;
554
- /**
555
- * Time range applied to the rule.
556
- */
557
- customRange?: SmartContract.CustomRange | null;
558
794
  /**
559
795
  * Event emitted by the smart contract.
560
796
  */
561
797
  event?: string | null;
562
- /**
563
- * Maximum value allowed for the parameter.
564
- */
565
- max?: number | null;
566
798
  /**
567
799
  * Array of parameters for the smart contract.
568
800
  */
569
801
  params?: Array<SmartContract.Param> | null;
570
802
  /**
571
- * Flag indicating if a bonus is applied.
803
+ * Type of the smart contract interaction.
572
804
  */
573
- withBonus?: boolean | null;
574
- /**
575
- * Flag indicating if a custom range is applied.
576
- */
577
- withCustomRange?: boolean | null;
578
- /**
579
- * Flag indicating if a maximum limit is applied.
580
- */
581
- withMax?: boolean | null;
805
+ type?: 'function' | 'event' | null;
582
806
  }
583
807
  namespace SmartContract {
584
- interface Bonus {
585
- /**
586
- * Amount of the bonus.
587
- */
588
- amount?: number | null;
589
- /**
590
- * Number of times the bonus is applied.
591
- */
592
- count?: number | null;
593
- }
594
808
  /**
595
- * Time range applied to the rule.
809
+ * Object containing details of the amount multiplier from the event.
596
810
  */
597
- interface CustomRange {
598
- /**
599
- * End time of the custom range.
600
- */
601
- endsAt?: string | null;
811
+ interface AmountMultiplier {
602
812
  /**
603
- * Start time of the custom range.
813
+ * Mapping of the value for the smart contract.
604
814
  */
605
- startsAt?: string | null;
815
+ valueMapping?: string | null;
606
816
  }
607
817
  interface Param {
608
818
  /**
@@ -639,6 +849,24 @@ export declare namespace RuleCreateResponse {
639
849
  */
640
850
  streakMilestone: number;
641
851
  }
852
+ /**
853
+ * Metadata for swap loyalty rules
854
+ */
855
+ interface Swap {
856
+ provider?: 'any' | 'relay' | 'lifi';
857
+ relayReferrerId?: string;
858
+ requireCrossChainSwap?: boolean;
859
+ swappedToChain?: 'any' | number | string;
860
+ swappedToTokens?: Array<Swap.SwappedToToken>;
861
+ tokenMode?: 'any' | 'specific';
862
+ trackTokenAmount?: boolean;
863
+ }
864
+ namespace Swap {
865
+ interface SwappedToToken {
866
+ address: string;
867
+ chainId: string;
868
+ }
869
+ }
642
870
  }
643
871
  interface Collection {
644
872
  /**
@@ -648,7 +876,11 @@ export declare namespace RuleCreateResponse {
648
876
  /**
649
877
  * Blockchain network for the collection
650
878
  */
651
- network: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
879
+ network: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
880
+ /**
881
+ * Symbol of the collection.
882
+ */
883
+ symbol?: string;
652
884
  }
653
885
  }
654
886
  export interface RuleUpdateResponse {
@@ -665,10 +897,14 @@ export interface RuleUpdateResponse {
665
897
  * Name of the loyalty rule
666
898
  */
667
899
  name: string;
900
+ /**
901
+ * The type of claim for the reward
902
+ */
903
+ claimType?: 'manual' | 'auto' | null;
668
904
  /**
669
905
  * Blockchain address of the associated collection
670
906
  */
671
- collectionAddress?: string;
907
+ collectionAddress?: string | null;
672
908
  /**
673
909
  * List of associated collections
674
910
  */
@@ -693,6 +929,10 @@ export interface RuleUpdateResponse {
693
929
  * Effective start time of the rule
694
930
  */
695
931
  effectiveStartTime?: string | null;
932
+ /**
933
+ * ID of the external integration
934
+ */
935
+ externalIntegrationId?: string | null;
696
936
  /**
697
937
  * Frequency of the rule execution
698
938
  */
@@ -704,7 +944,7 @@ export interface RuleUpdateResponse {
704
944
  /**
705
945
  * Time interval for recurring rule execution
706
946
  */
707
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
947
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
708
948
  /**
709
949
  * Whether this rule is required for participation
710
950
  */
@@ -713,6 +953,16 @@ export interface RuleUpdateResponse {
713
953
  * ID of the rule group section to associate with the rule
714
954
  */
715
955
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
956
+ /**
957
+ * The interval for the max amount. Available for the smart contract and external
958
+ * rules.
959
+ */
960
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
961
+ /**
962
+ * The maximum amount of points a user can earn per interval. Available for the
963
+ * smart contract and external rules.
964
+ */
965
+ maxAmountPerInterval?: number | null;
716
966
  /**
717
967
  * URL of the media to be displayed
718
968
  */
@@ -724,23 +974,35 @@ export interface RuleUpdateResponse {
724
974
  /**
725
975
  * Blockchain network where the rule will apply
726
976
  */
727
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
977
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
728
978
  /**
729
979
  * ID for associated OAuth credentials
730
980
  */
731
981
  oauthCredentialsId?: string | null;
982
+ /**
983
+ * The lifetime of the reward
984
+ */
985
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
732
986
  /**
733
987
  * Type of reward issued by this rule
734
988
  */
735
- rewardType?: 'points' | 'multiplier';
989
+ rewardType?: 'points' | 'multiplier' | 'badge';
990
+ /**
991
+ * URL of the Shopify store
992
+ */
993
+ shopifyStoreUrl?: string | null;
994
+ /**
995
+ * Whether to show this rule before the start time
996
+ */
997
+ showBeforeStart?: boolean;
736
998
  /**
737
999
  * Start time for the loyalty rule
738
1000
  */
739
1001
  startTime?: string | null;
740
1002
  /**
741
- * Optional subscription identifier for the rule
1003
+ * Optional subscription id for the rule
742
1004
  */
743
- subscriptionIdentifier?: string | null;
1005
+ subscriptionId?: string | null;
744
1006
  }
745
1007
  export declare namespace RuleUpdateResponse {
746
1008
  interface Collection {
@@ -751,12 +1013,20 @@ export declare namespace RuleUpdateResponse {
751
1013
  /**
752
1014
  * Blockchain network for the collection
753
1015
  */
754
- network: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
1016
+ network: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
1017
+ /**
1018
+ * Symbol of the collection.
1019
+ */
1020
+ symbol?: string;
755
1021
  }
756
1022
  /**
757
1023
  * Additional metadata for the loyalty rule
758
1024
  */
759
1025
  interface Metadata {
1026
+ /**
1027
+ * Number of tokens per batch.
1028
+ */
1029
+ batchSize?: number | null;
760
1030
  /**
761
1031
  * Text displayed on the action button.
762
1032
  */
@@ -776,7 +1046,7 @@ export declare namespace RuleUpdateResponse {
776
1046
  /**
777
1047
  * Text to check in the Twitter post, username, or bio.
778
1048
  */
779
- checkText?: string | null;
1049
+ checkText?: string | Array<string> | null;
780
1050
  /**
781
1051
  * Array of collections associated with the rule.
782
1052
  */
@@ -784,7 +1054,13 @@ export declare namespace RuleUpdateResponse {
784
1054
  /**
785
1055
  * Conditions for completing the profile.
786
1056
  */
787
- completeProfileConditions?: Record<string, boolean> | null;
1057
+ completeProfileConditions?: {
1058
+ [key: string]: boolean;
1059
+ } | null;
1060
+ /**
1061
+ * Description of the external rule condition (only for external rules)
1062
+ */
1063
+ conditionDescription?: string;
788
1064
  /**
789
1065
  * Object containing details for the call-to-action.
790
1066
  */
@@ -793,6 +1069,10 @@ export declare namespace RuleUpdateResponse {
793
1069
  * API key for custom rewards integration.
794
1070
  */
795
1071
  customRewardsApiKey?: string;
1072
+ /**
1073
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1074
+ */
1075
+ directRpc?: boolean;
796
1076
  /**
797
1077
  * Array of Discord servers, channels, and roles to join.
798
1078
  */
@@ -813,6 +1093,10 @@ export declare namespace RuleUpdateResponse {
813
1093
  * Flag indicating whether the verified multiplier is enabled.
814
1094
  */
815
1095
  enableVerifiedMultiplier?: boolean;
1096
+ /**
1097
+ * Type of ERC20 token for the loyalty rule.
1098
+ */
1099
+ erc20Type?: 'erc20' | 'native';
816
1100
  /**
817
1101
  * Fill source of the order for the token sale
818
1102
  */
@@ -829,10 +1113,6 @@ export declare namespace RuleUpdateResponse {
829
1113
  * Indicates if the item has never been sold.
830
1114
  */
831
1115
  hasNeverSold?: boolean;
832
- /**
833
- * Flag indicating whether the order source is included.
834
- */
835
- hasOrderSource?: boolean;
836
1116
  /**
837
1117
  * Indicates if the full royalty has been paid for items.
838
1118
  */
@@ -849,10 +1129,18 @@ export declare namespace RuleUpdateResponse {
849
1129
  * URL of the image associated with the rule.
850
1130
  */
851
1131
  imageUrl?: string | null;
1132
+ /**
1133
+ * If enabled, the first transaction done on the platform will complete this rule
1134
+ */
1135
+ isCheckInOnEveryTxn?: boolean;
852
1136
  /**
853
1137
  * Indicates if the multiplier has been applied to rewards.
854
1138
  */
855
1139
  isMultiplierApplied?: boolean;
1140
+ /**
1141
+ * Flag indicating if the rule is restricted to new users.
1142
+ */
1143
+ isRestrictedToNewUsers?: boolean;
856
1144
  /**
857
1145
  * Flag indicating if rewards are applied retroactively.
858
1146
  */
@@ -865,6 +1153,10 @@ export declare namespace RuleUpdateResponse {
865
1153
  * Optional link associated with the metadata.
866
1154
  */
867
1155
  link?: string | null;
1156
+ /**
1157
+ * Liquidity pool details.
1158
+ */
1159
+ liquidity?: Metadata.Liquidity;
868
1160
  /**
869
1161
  * Maximum quantity constraint for token holding.
870
1162
  */
@@ -897,14 +1189,22 @@ export declare namespace RuleUpdateResponse {
897
1189
  * give points for only one token ownership per contract
898
1190
  */
899
1191
  onlyRewardSingleTokenOwnership?: boolean | null;
900
- /**
901
- * Order source of the order for the token sale
902
- */
903
- orderSource?: string;
904
1192
  /**
905
1193
  * Promotional code associated with the rule.
906
1194
  */
907
1195
  promoCode?: string;
1196
+ /**
1197
+ * URL of the CSV file containing promo codes.
1198
+ */
1199
+ promoCodeCsvUrl?: string;
1200
+ /**
1201
+ * Numbers of the promotional code to be generated.
1202
+ */
1203
+ promoCodeLength?: number | null;
1204
+ /**
1205
+ * Type of the promotional code.
1206
+ */
1207
+ promoCodeType?: 'code' | 'csv' | 'generate';
908
1208
  /**
909
1209
  * Array defining ranges and corresponding rewards.
910
1210
  */
@@ -917,10 +1217,51 @@ export declare namespace RuleUpdateResponse {
917
1217
  * Lump sum reward given to a referrer.
918
1218
  */
919
1219
  referrerReward?: number | null;
1220
+ /**
1221
+ * Loyalty currency ID of the referrer reward.
1222
+ */
1223
+ referrerRewardLoyaltyCurrencyId?: string | null;
1224
+ /**
1225
+ * Flag indicating if the post link is required.
1226
+ */
1227
+ requirePostLink?: boolean | null;
1228
+ /**
1229
+ * Flag indicating if media metadata is required.
1230
+ */
1231
+ requirePostMediaLink?: boolean | null;
1232
+ /**
1233
+ * Flag indicating if the rule can also reward badges per range.
1234
+ */
1235
+ rewardBadgePerRange?: boolean;
1236
+ /**
1237
+ * Flag indicating if the reward is rewarded by batch.
1238
+ */
1239
+ rewardByBatch?: boolean | null;
1240
+ /**
1241
+ * Criteria to evaluate the reward.
1242
+ */
1243
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
1244
+ /**
1245
+ * Flag indicating if the reward is rewarded per action.
1246
+ */
1247
+ rewardPerAction?: boolean | null;
920
1248
  /**
921
1249
  * Flag indicating if rewards are given per impression.
922
1250
  */
923
1251
  rewardPerImpression?: boolean | null;
1252
+ /**
1253
+ * Flag indicating if the rule should reward based on value of traded tokens
1254
+ * instead of count.
1255
+ */
1256
+ rewardPerValue?: boolean;
1257
+ /**
1258
+ * Wallet address of the user can only be used if userId is not provided
1259
+ */
1260
+ royaltyAddress?: string;
1261
+ /**
1262
+ * Royalty percentage of the item.
1263
+ */
1264
+ royaltyPercentage?: number;
924
1265
  /**
925
1266
  * Currency associated with sales.
926
1267
  */
@@ -944,7 +1285,7 @@ export declare namespace RuleUpdateResponse {
944
1285
  /**
945
1286
  * Social media platform associated with the rule.
946
1287
  */
947
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
1288
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | null;
948
1289
  /**
949
1290
  * URL of the social platform's logo.
950
1291
  */
@@ -953,10 +1294,18 @@ export declare namespace RuleUpdateResponse {
953
1294
  * Name of the social platform.
954
1295
  */
955
1296
  socialPlatformName?: string | null;
1297
+ /**
1298
+ * ID of the Steam app.
1299
+ */
1300
+ steamAppId?: string | null;
956
1301
  /**
957
1302
  * Array of streak milestones and corresponding rewards.
958
1303
  */
959
1304
  streakArray?: Array<Metadata.StreakArray> | null;
1305
+ /**
1306
+ * Metadata for swap loyalty rules
1307
+ */
1308
+ swap?: Metadata.Swap;
960
1309
  /**
961
1310
  * ID of the Telegram channel.
962
1311
  */
@@ -969,6 +1318,11 @@ export declare namespace RuleUpdateResponse {
969
1318
  * Flag indicating if all contracts are tracked.
970
1319
  */
971
1320
  trackAllContracts?: boolean | null;
1321
+ /**
1322
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
1323
+ * completed once the progress is 100%.
1324
+ */
1325
+ trackProgress?: boolean | null;
972
1326
  /**
973
1327
  * URL of the associated Twitter account.
974
1328
  */
@@ -1004,7 +1358,15 @@ export declare namespace RuleUpdateResponse {
1004
1358
  /**
1005
1359
  * Type of wallet associated with the rule.
1006
1360
  */
1007
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
1361
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | null;
1362
+ /**
1363
+ * ID of the Youtube channel.
1364
+ */
1365
+ youtubeChannelId?: string | null;
1366
+ /**
1367
+ * ID of the Youtube video.
1368
+ */
1369
+ youtubeVideoId?: string | null;
1008
1370
  }
1009
1371
  namespace Metadata {
1010
1372
  interface Collection {
@@ -1019,7 +1381,7 @@ export declare namespace RuleUpdateResponse {
1019
1381
  /**
1020
1382
  * Blockchain network of the collection.
1021
1383
  */
1022
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
1384
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
1023
1385
  }
1024
1386
  /**
1025
1387
  * Object containing details for the call-to-action.
@@ -1084,6 +1446,49 @@ export declare namespace RuleUpdateResponse {
1084
1446
  */
1085
1447
  id: string;
1086
1448
  }
1449
+ /**
1450
+ * Liquidity pool details.
1451
+ */
1452
+ interface Liquidity {
1453
+ /**
1454
+ * Calculation type of the liquidity pool.
1455
+ */
1456
+ calculationType?: 'fixed' | 'custom';
1457
+ /**
1458
+ * Custom function to calculate the the reward amount based on the liquidity
1459
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1460
+ * USD.
1461
+ */
1462
+ customFunction?: string;
1463
+ /**
1464
+ * Liquidity provided per day in USD
1465
+ */
1466
+ liquidityPerDay?: number;
1467
+ /**
1468
+ * Blockchain network of the liquidity pool.
1469
+ */
1470
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
1471
+ /**
1472
+ * Indicates if only in-range liquidity is rewarded.
1473
+ */
1474
+ onlyRewardInRangeLiquidity?: boolean;
1475
+ /**
1476
+ * Array of liquidity pools associated with the rule.
1477
+ */
1478
+ pools?: Array<Liquidity.Pool>;
1479
+ /**
1480
+ * Protocol of the liquidity pool.
1481
+ */
1482
+ protocol?: string;
1483
+ }
1484
+ namespace Liquidity {
1485
+ interface Pool {
1486
+ /**
1487
+ * Unique identifier of the liquidity pool.
1488
+ */
1489
+ id: string;
1490
+ }
1491
+ }
1087
1492
  interface Range {
1088
1493
  /**
1089
1494
  * Reward amount for this range.
@@ -1097,6 +1502,14 @@ export declare namespace RuleUpdateResponse {
1097
1502
  * Start value of the range.
1098
1503
  */
1099
1504
  startRange: number;
1505
+ /**
1506
+ * ID of the loyalty badge for this range.
1507
+ */
1508
+ loyaltyBadgeId?: string;
1509
+ /**
1510
+ * Amount of the loyalty multiplier for this range.
1511
+ */
1512
+ loyaltyMultiplierAmount?: number;
1100
1513
  }
1101
1514
  /**
1102
1515
  * Object defining referral requirements.
@@ -1140,18 +1553,14 @@ export declare namespace RuleUpdateResponse {
1140
1553
  * Object containing details of the associated smart contract.
1141
1554
  */
1142
1555
  interface SmartContract {
1143
- /**
1144
- * ABI of the smart contract.
1145
- */
1146
- abi?: string | null;
1147
1556
  /**
1148
1557
  * Mapping of addresses for the smart contract.
1149
1558
  */
1150
1559
  addressMapping?: string | null;
1151
1560
  /**
1152
- * Array of bonus details applied to the rule.
1561
+ * Object containing details of the amount multiplier from the event.
1153
1562
  */
1154
- bonus?: Array<SmartContract.Bonus> | null;
1563
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1155
1564
  /**
1156
1565
  * ID of the smart contract.
1157
1566
  */
@@ -1160,58 +1569,28 @@ export declare namespace RuleUpdateResponse {
1160
1569
  * Criteria to evaluate the smart contract event.
1161
1570
  */
1162
1571
  criteria?: 'everyEvent' | 'byParameter' | null;
1163
- /**
1164
- * Time range applied to the rule.
1165
- */
1166
- customRange?: SmartContract.CustomRange | null;
1167
1572
  /**
1168
1573
  * Event emitted by the smart contract.
1169
1574
  */
1170
1575
  event?: string | null;
1171
- /**
1172
- * Maximum value allowed for the parameter.
1173
- */
1174
- max?: number | null;
1175
1576
  /**
1176
1577
  * Array of parameters for the smart contract.
1177
1578
  */
1178
1579
  params?: Array<SmartContract.Param> | null;
1179
1580
  /**
1180
- * Flag indicating if a bonus is applied.
1181
- */
1182
- withBonus?: boolean | null;
1183
- /**
1184
- * Flag indicating if a custom range is applied.
1581
+ * Type of the smart contract interaction.
1185
1582
  */
1186
- withCustomRange?: boolean | null;
1187
- /**
1188
- * Flag indicating if a maximum limit is applied.
1189
- */
1190
- withMax?: boolean | null;
1583
+ type?: 'function' | 'event' | null;
1191
1584
  }
1192
1585
  namespace SmartContract {
1193
- interface Bonus {
1194
- /**
1195
- * Amount of the bonus.
1196
- */
1197
- amount?: number | null;
1198
- /**
1199
- * Number of times the bonus is applied.
1200
- */
1201
- count?: number | null;
1202
- }
1203
1586
  /**
1204
- * Time range applied to the rule.
1587
+ * Object containing details of the amount multiplier from the event.
1205
1588
  */
1206
- interface CustomRange {
1589
+ interface AmountMultiplier {
1207
1590
  /**
1208
- * End time of the custom range.
1591
+ * Mapping of the value for the smart contract.
1209
1592
  */
1210
- endsAt?: string | null;
1211
- /**
1212
- * Start time of the custom range.
1213
- */
1214
- startsAt?: string | null;
1593
+ valueMapping?: string | null;
1215
1594
  }
1216
1595
  interface Param {
1217
1596
  /**
@@ -1248,6 +1627,24 @@ export declare namespace RuleUpdateResponse {
1248
1627
  */
1249
1628
  streakMilestone: number;
1250
1629
  }
1630
+ /**
1631
+ * Metadata for swap loyalty rules
1632
+ */
1633
+ interface Swap {
1634
+ provider?: 'any' | 'relay' | 'lifi';
1635
+ relayReferrerId?: string;
1636
+ requireCrossChainSwap?: boolean;
1637
+ swappedToChain?: 'any' | number | string;
1638
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1639
+ tokenMode?: 'any' | 'specific';
1640
+ trackTokenAmount?: boolean;
1641
+ }
1642
+ namespace Swap {
1643
+ interface SwappedToToken {
1644
+ address: string;
1645
+ chainId: string;
1646
+ }
1647
+ }
1251
1648
  }
1252
1649
  }
1253
1650
  export interface RuleListResponse {
@@ -1255,9 +1652,6 @@ export interface RuleListResponse {
1255
1652
  hasNextPage: boolean;
1256
1653
  }
1257
1654
  export declare namespace RuleListResponse {
1258
- /**
1259
- * Schema for a loyalty rule
1260
- */
1261
1655
  interface Data {
1262
1656
  /**
1263
1657
  * Unique identifier for the loyalty rule
@@ -1275,20 +1669,44 @@ export declare namespace RuleListResponse {
1275
1669
  * Timestamp when the loyalty rule was deleted (if applicable)
1276
1670
  */
1277
1671
  deletedAt: string | null;
1672
+ /**
1673
+ * Description of the loyalty rule
1674
+ */
1675
+ description: string;
1676
+ /**
1677
+ * End time of the loyalty rule
1678
+ */
1679
+ endTime: string;
1278
1680
  /**
1279
1681
  * Frequency of the loyalty rule
1280
1682
  */
1281
1683
  frequency: string;
1684
+ /**
1685
+ * Chains attached to the loyalty rule
1686
+ */
1687
+ loyaltyRuleChain: Array<Data.LoyaltyRuleChain>;
1688
+ /**
1689
+ * Name of the loyalty rule
1690
+ */
1691
+ name: string;
1282
1692
  /**
1283
1693
  * Unique identifier for the organization
1284
1694
  */
1285
1695
  organizationId: string;
1286
1696
  /**
1287
- * Type of the loyalty rule
1697
+ * Type of the reward
1288
1698
  */
1289
- type: string;
1699
+ rewardType: 'points' | 'multiplier' | 'badge';
1290
1700
  /**
1291
- * Timestamp when the loyalty rule was last updated
1701
+ * Start time of the loyalty rule
1702
+ */
1703
+ startTime: string;
1704
+ /**
1705
+ * Type of the loyalty rule
1706
+ */
1707
+ type: string;
1708
+ /**
1709
+ * Timestamp when the loyalty rule was last updated
1292
1710
  */
1293
1711
  updatedAt: string;
1294
1712
  /**
@@ -1299,10 +1717,723 @@ export declare namespace RuleListResponse {
1299
1717
  * Optional address of the collection
1300
1718
  */
1301
1719
  collectionAddress?: string;
1720
+ /**
1721
+ * URL of the media associated with the loyalty rule
1722
+ */
1723
+ mediaUrl?: string | null;
1302
1724
  /**
1303
1725
  * Optional metadata for the loyalty rule
1304
1726
  */
1305
- metadata?: Record<string, unknown>;
1727
+ metadata?: {
1728
+ [key: string]: Data.Metadata;
1729
+ };
1730
+ }
1731
+ namespace Data {
1732
+ interface LoyaltyRuleChain {
1733
+ /**
1734
+ * Unique identifier for the rule chain
1735
+ */
1736
+ id: string;
1737
+ loyaltyConditions: Array<LoyaltyRuleChain.LoyaltyCondition>;
1738
+ /**
1739
+ * Unique identifier for the loyalty rule
1740
+ */
1741
+ loyaltyRuleId: string;
1742
+ /**
1743
+ * Name of the rule chain
1744
+ */
1745
+ name: string;
1746
+ }
1747
+ namespace LoyaltyRuleChain {
1748
+ interface LoyaltyCondition {
1749
+ /**
1750
+ * Unique identifier for the condition
1751
+ */
1752
+ id: string;
1753
+ /**
1754
+ * Amount of the condition
1755
+ */
1756
+ amount: number | null;
1757
+ association: Array<LoyaltyCondition.Association>;
1758
+ /**
1759
+ * URL of the CSV file
1760
+ */
1761
+ csvUrl: string | null;
1762
+ /**
1763
+ * Description of the condition
1764
+ */
1765
+ description: string | null;
1766
+ /**
1767
+ * Number of times the condition must be met
1768
+ */
1769
+ repeatCount: number | null;
1770
+ /**
1771
+ * Number of times the condition must be met
1772
+ */
1773
+ requiredCount: number | null;
1774
+ /**
1775
+ * Type of the condition
1776
+ */
1777
+ type: 'rule' | 'rules' | 'points' | 'section' | 'level' | 'api' | 'badge' | 'badges' | 'csv';
1778
+ }
1779
+ namespace LoyaltyCondition {
1780
+ interface Association {
1781
+ /**
1782
+ * Unique identifier for the association
1783
+ */
1784
+ id: string;
1785
+ /**
1786
+ * Unique identifier for the loyalty badge
1787
+ */
1788
+ loyaltyBadgeId: string | null;
1789
+ /**
1790
+ * Unique identifier for the loyalty currency
1791
+ */
1792
+ loyaltyCurrencyId: string | null;
1793
+ loyaltyRule: Association.LoyaltyRule | null;
1794
+ /**
1795
+ * Unique identifier for the loyalty rule group
1796
+ */
1797
+ loyaltyRuleGroupId: string | null;
1798
+ /**
1799
+ * Unique identifier for the loyalty rule
1800
+ */
1801
+ loyaltyRuleId: string | null;
1802
+ }
1803
+ namespace Association {
1804
+ interface LoyaltyRule {
1805
+ /**
1806
+ * Name of the loyalty rule
1807
+ */
1808
+ name: string;
1809
+ }
1810
+ }
1811
+ }
1812
+ }
1813
+ interface Metadata {
1814
+ /**
1815
+ * Number of tokens per batch.
1816
+ */
1817
+ batchSize?: number | null;
1818
+ /**
1819
+ * Text displayed on the action button.
1820
+ */
1821
+ buttonText?: string | null;
1822
+ /**
1823
+ * Flag indicating if commenting is required.
1824
+ */
1825
+ checkComment?: boolean | null;
1826
+ /**
1827
+ * Flag indicating if liking the post is required.
1828
+ */
1829
+ checkLike?: boolean | null;
1830
+ /**
1831
+ * Flag indicating if reposting is required.
1832
+ */
1833
+ checkRepost?: boolean | null;
1834
+ /**
1835
+ * Text to check in the Twitter post, username, or bio.
1836
+ */
1837
+ checkText?: string | Array<string> | null;
1838
+ /**
1839
+ * Array of collections associated with the rule.
1840
+ */
1841
+ collection?: Array<Metadata.Collection>;
1842
+ /**
1843
+ * Conditions for completing the profile.
1844
+ */
1845
+ completeProfileConditions?: {
1846
+ [key: string]: boolean;
1847
+ } | null;
1848
+ /**
1849
+ * Description of the external rule condition (only for external rules)
1850
+ */
1851
+ conditionDescription?: string;
1852
+ /**
1853
+ * Object containing details for the call-to-action.
1854
+ */
1855
+ cta?: Metadata.Cta | null;
1856
+ /**
1857
+ * API key for custom rewards integration.
1858
+ */
1859
+ customRewardsApiKey?: string;
1860
+ /**
1861
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1862
+ */
1863
+ directRpc?: boolean;
1864
+ /**
1865
+ * Array of Discord servers, channels, and roles to join.
1866
+ */
1867
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
1868
+ /**
1869
+ * Array of drip quests required to complete the rule.
1870
+ */
1871
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
1872
+ /**
1873
+ * Flag indicating whether joining Discord servers is required.
1874
+ */
1875
+ enableJoinDiscordServers?: boolean | null;
1876
+ /**
1877
+ * Flag indicating whether streaks are enabled.
1878
+ */
1879
+ enableStreaks?: boolean | null;
1880
+ /**
1881
+ * Flag indicating whether the verified multiplier is enabled.
1882
+ */
1883
+ enableVerifiedMultiplier?: boolean;
1884
+ /**
1885
+ * Type of ERC20 token for the loyalty rule.
1886
+ */
1887
+ erc20Type?: 'erc20' | 'native';
1888
+ /**
1889
+ * Fill source of the order for the token sale
1890
+ */
1891
+ fillSource?: string;
1892
+ /**
1893
+ * Percentage reward given to a user for their first referral.
1894
+ */
1895
+ firstReferralReward?: number | null;
1896
+ /**
1897
+ * Flag indicating whether the fill source is included.
1898
+ */
1899
+ hasFillSource?: boolean;
1900
+ /**
1901
+ * Indicates if the item has never been sold.
1902
+ */
1903
+ hasNeverSold?: boolean;
1904
+ /**
1905
+ * Indicates if the full royalty has been paid for items.
1906
+ */
1907
+ hasPaidFullRoyalty?: boolean;
1908
+ /**
1909
+ * Flag indicating if the sale currency is included.
1910
+ */
1911
+ hasSaleCurrency?: boolean;
1912
+ /**
1913
+ * Indicates if the user has a verified Twitter account.
1914
+ */
1915
+ hasVerifiedTwitter?: boolean;
1916
+ /**
1917
+ * URL of the image associated with the rule.
1918
+ */
1919
+ imageUrl?: string | null;
1920
+ /**
1921
+ * If enabled, the first transaction done on the platform will complete this rule
1922
+ */
1923
+ isCheckInOnEveryTxn?: boolean;
1924
+ /**
1925
+ * Indicates if the multiplier has been applied to rewards.
1926
+ */
1927
+ isMultiplierApplied?: boolean;
1928
+ /**
1929
+ * Flag indicating if the rule is restricted to new users.
1930
+ */
1931
+ isRestrictedToNewUsers?: boolean;
1932
+ /**
1933
+ * Flag indicating if rewards are applied retroactively.
1934
+ */
1935
+ isRetroactive?: boolean | null;
1936
+ /**
1937
+ * Flag indicating if the token hold multiplier is applied.
1938
+ */
1939
+ isTokenHoldMultiplier?: boolean;
1940
+ /**
1941
+ * Optional link associated with the metadata.
1942
+ */
1943
+ link?: string | null;
1944
+ /**
1945
+ * Liquidity pool details.
1946
+ */
1947
+ liquidity?: Metadata.Liquidity;
1948
+ /**
1949
+ * Maximum quantity constraint for token holding.
1950
+ */
1951
+ maxQty?: number | null;
1952
+ /**
1953
+ * Minimum quantity constraint for token holding.
1954
+ */
1955
+ minQty?: number | null;
1956
+ /**
1957
+ * Array of loyalty currency IDs used for multipliers.
1958
+ */
1959
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
1960
+ /**
1961
+ * Flag indicating whether to include only known users.
1962
+ */
1963
+ onlyKnownUsers?: boolean;
1964
+ /**
1965
+ * Flag indicating whether to include only native tokens.
1966
+ */
1967
+ onlyNative?: boolean;
1968
+ /**
1969
+ * Flag indicating whether to include only non-listed items.
1970
+ */
1971
+ onlyNonListed?: boolean;
1972
+ /**
1973
+ * Indicates if only existing users are rewarded.
1974
+ */
1975
+ onlyRewardExistingUser?: boolean;
1976
+ /**
1977
+ * give points for only one token ownership per contract
1978
+ */
1979
+ onlyRewardSingleTokenOwnership?: boolean | null;
1980
+ /**
1981
+ * Promotional code associated with the rule.
1982
+ */
1983
+ promoCode?: string;
1984
+ /**
1985
+ * URL of the CSV file containing promo codes.
1986
+ */
1987
+ promoCodeCsvUrl?: string;
1988
+ /**
1989
+ * Numbers of the promotional code to be generated.
1990
+ */
1991
+ promoCodeLength?: number | null;
1992
+ /**
1993
+ * Type of the promotional code.
1994
+ */
1995
+ promoCodeType?: 'code' | 'csv' | 'generate';
1996
+ /**
1997
+ * Array defining ranges and corresponding rewards.
1998
+ */
1999
+ range?: Array<Metadata.Range>;
2000
+ /**
2001
+ * Object defining referral requirements.
2002
+ */
2003
+ referralRequirements?: Metadata.ReferralRequirements | null;
2004
+ /**
2005
+ * Lump sum reward given to a referrer.
2006
+ */
2007
+ referrerReward?: number | null;
2008
+ /**
2009
+ * Loyalty currency ID of the referrer reward.
2010
+ */
2011
+ referrerRewardLoyaltyCurrencyId?: string | null;
2012
+ /**
2013
+ * Flag indicating if the post link is required.
2014
+ */
2015
+ requirePostLink?: boolean | null;
2016
+ /**
2017
+ * Flag indicating if media metadata is required.
2018
+ */
2019
+ requirePostMediaLink?: boolean | null;
2020
+ /**
2021
+ * Flag indicating if the rule can also reward badges per range.
2022
+ */
2023
+ rewardBadgePerRange?: boolean;
2024
+ /**
2025
+ * Flag indicating if the reward is rewarded by batch.
2026
+ */
2027
+ rewardByBatch?: boolean | null;
2028
+ /**
2029
+ * Criteria to evaluate the reward.
2030
+ */
2031
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
2032
+ /**
2033
+ * Flag indicating if the reward is rewarded per action.
2034
+ */
2035
+ rewardPerAction?: boolean | null;
2036
+ /**
2037
+ * Flag indicating if rewards are given per impression.
2038
+ */
2039
+ rewardPerImpression?: boolean | null;
2040
+ /**
2041
+ * Flag indicating if the rule should reward based on value of traded tokens
2042
+ * instead of count.
2043
+ */
2044
+ rewardPerValue?: boolean;
2045
+ /**
2046
+ * Wallet address of the user can only be used if userId is not provided
2047
+ */
2048
+ royaltyAddress?: string;
2049
+ /**
2050
+ * Royalty percentage of the item.
2051
+ */
2052
+ royaltyPercentage?: number;
2053
+ /**
2054
+ * Currency associated with sales.
2055
+ */
2056
+ saleCurrency?: string;
2057
+ /**
2058
+ * Percentage reward given for a second-level referral.
2059
+ */
2060
+ secondReferralReward?: number | null;
2061
+ /**
2062
+ * Flag indicating if the multiplier is skipped.
2063
+ */
2064
+ skipMultiplier?: boolean | null;
2065
+ /**
2066
+ * Object containing details of the associated smart contract.
2067
+ */
2068
+ smartContract?: Metadata.SmartContract;
2069
+ /**
2070
+ * Array of snapshot proposals for the rule.
2071
+ */
2072
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
2073
+ /**
2074
+ * Social media platform associated with the rule.
2075
+ */
2076
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | null;
2077
+ /**
2078
+ * URL of the social platform's logo.
2079
+ */
2080
+ socialPlatformLogo?: string | null;
2081
+ /**
2082
+ * Name of the social platform.
2083
+ */
2084
+ socialPlatformName?: string | null;
2085
+ /**
2086
+ * ID of the Steam app.
2087
+ */
2088
+ steamAppId?: string | null;
2089
+ /**
2090
+ * Array of streak milestones and corresponding rewards.
2091
+ */
2092
+ streakArray?: Array<Metadata.StreakArray> | null;
2093
+ /**
2094
+ * Metadata for swap loyalty rules
2095
+ */
2096
+ swap?: Metadata.Swap;
2097
+ /**
2098
+ * ID of the Telegram channel.
2099
+ */
2100
+ telegramChannelId?: string | null;
2101
+ /**
2102
+ * Time delay in seconds to verify actions.
2103
+ */
2104
+ timeDelayToVerifySeconds?: string | number | null;
2105
+ /**
2106
+ * Flag indicating if all contracts are tracked.
2107
+ */
2108
+ trackAllContracts?: boolean | null;
2109
+ /**
2110
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2111
+ * completed once the progress is 100%.
2112
+ */
2113
+ trackProgress?: boolean | null;
2114
+ /**
2115
+ * URL of the associated Twitter account.
2116
+ */
2117
+ twitterAccountUrl?: string;
2118
+ /**
2119
+ * Hashtag associated with the Twitter post.
2120
+ */
2121
+ twitterHashtag?: string;
2122
+ /**
2123
+ * URL of the associated Twitter post.
2124
+ */
2125
+ twitterPostUrl?: string;
2126
+ /**
2127
+ * Unique identifier of the Twitter user.
2128
+ */
2129
+ twitterUserId?: string;
2130
+ /**
2131
+ * Twitter username of the user.
2132
+ */
2133
+ twitterUsername?: string;
2134
+ /**
2135
+ * Minimum length of the verification text.
2136
+ */
2137
+ verificationTextMinimumLength?: number | null;
2138
+ /**
2139
+ * Multiplier applied to rewards for verified users.
2140
+ */
2141
+ verifiedMultiplier?: number | null;
2142
+ /**
2143
+ * Placeholder text for verification input fields.
2144
+ */
2145
+ verifyPlaceHolderText?: string | null;
2146
+ /**
2147
+ * Type of wallet associated with the rule.
2148
+ */
2149
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | null;
2150
+ /**
2151
+ * ID of the Youtube channel.
2152
+ */
2153
+ youtubeChannelId?: string | null;
2154
+ /**
2155
+ * ID of the Youtube video.
2156
+ */
2157
+ youtubeVideoId?: string | null;
2158
+ }
2159
+ namespace Metadata {
2160
+ interface Collection {
2161
+ /**
2162
+ * Blockchain address of the collection.
2163
+ */
2164
+ address?: string;
2165
+ /**
2166
+ * Multiplier applied to the rewards for this collection.
2167
+ */
2168
+ multiplier?: number;
2169
+ /**
2170
+ * Blockchain network of the collection.
2171
+ */
2172
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
2173
+ }
2174
+ /**
2175
+ * Object containing details for the call-to-action.
2176
+ */
2177
+ interface Cta {
2178
+ /**
2179
+ * Link for the call-to-action.
2180
+ */
2181
+ href?: string | null;
2182
+ /**
2183
+ * Label for the call-to-action.
2184
+ */
2185
+ label?: string | null;
2186
+ }
2187
+ interface DiscordServersToJoin {
2188
+ /**
2189
+ * ID of the Discord server to join.
2190
+ */
2191
+ id?: string;
2192
+ /**
2193
+ * Array of Discord channels to join.
2194
+ */
2195
+ channels?: Array<DiscordServersToJoin.Channel>;
2196
+ /**
2197
+ * Array of roles to assign in the Discord server.
2198
+ */
2199
+ roles?: Array<DiscordServersToJoin.Role>;
2200
+ }
2201
+ namespace DiscordServersToJoin {
2202
+ interface Channel {
2203
+ /**
2204
+ * ID of the Discord channel.
2205
+ */
2206
+ id?: string;
2207
+ /**
2208
+ * Array of emojis used in the channel.
2209
+ */
2210
+ emojis?: Array<Channel.Emoji>;
2211
+ /**
2212
+ * Phrase of text to be present in the discord message
2213
+ */
2214
+ text?: string;
2215
+ }
2216
+ namespace Channel {
2217
+ interface Emoji {
2218
+ /**
2219
+ * ID of the emoji used in the channel.
2220
+ */
2221
+ id?: string;
2222
+ }
2223
+ }
2224
+ interface Role {
2225
+ /**
2226
+ * ID of the role in the Discord server.
2227
+ */
2228
+ id: string;
2229
+ }
2230
+ }
2231
+ interface DripQuestsToComplete {
2232
+ /**
2233
+ * ID of the drip quest to complete.
2234
+ */
2235
+ id: string;
2236
+ }
2237
+ /**
2238
+ * Liquidity pool details.
2239
+ */
2240
+ interface Liquidity {
2241
+ /**
2242
+ * Calculation type of the liquidity pool.
2243
+ */
2244
+ calculationType?: 'fixed' | 'custom';
2245
+ /**
2246
+ * Custom function to calculate the the reward amount based on the liquidity
2247
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2248
+ * USD.
2249
+ */
2250
+ customFunction?: string;
2251
+ /**
2252
+ * Liquidity provided per day in USD
2253
+ */
2254
+ liquidityPerDay?: number;
2255
+ /**
2256
+ * Blockchain network of the liquidity pool.
2257
+ */
2258
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
2259
+ /**
2260
+ * Indicates if only in-range liquidity is rewarded.
2261
+ */
2262
+ onlyRewardInRangeLiquidity?: boolean;
2263
+ /**
2264
+ * Array of liquidity pools associated with the rule.
2265
+ */
2266
+ pools?: Array<Liquidity.Pool>;
2267
+ /**
2268
+ * Protocol of the liquidity pool.
2269
+ */
2270
+ protocol?: string;
2271
+ }
2272
+ namespace Liquidity {
2273
+ interface Pool {
2274
+ /**
2275
+ * Unique identifier of the liquidity pool.
2276
+ */
2277
+ id: string;
2278
+ }
2279
+ }
2280
+ interface Range {
2281
+ /**
2282
+ * Reward amount for this range.
2283
+ */
2284
+ amount: number;
2285
+ /**
2286
+ * End value of the range.
2287
+ */
2288
+ endRange: number;
2289
+ /**
2290
+ * Start value of the range.
2291
+ */
2292
+ startRange: number;
2293
+ /**
2294
+ * ID of the loyalty badge for this range.
2295
+ */
2296
+ loyaltyBadgeId?: string;
2297
+ /**
2298
+ * Amount of the loyalty multiplier for this range.
2299
+ */
2300
+ loyaltyMultiplierAmount?: number;
2301
+ }
2302
+ /**
2303
+ * Object defining referral requirements.
2304
+ */
2305
+ interface ReferralRequirements {
2306
+ /**
2307
+ * Flag indicating if achieving points is required.
2308
+ */
2309
+ achievePoints?: boolean | null;
2310
+ /**
2311
+ * Flag indicating if completing the profile is required.
2312
+ */
2313
+ completeProfile?: boolean | null;
2314
+ /**
2315
+ * Flag indicating if connecting Discord is required.
2316
+ */
2317
+ connectDiscord?: boolean | null;
2318
+ /**
2319
+ * Flag indicating if connecting email is required.
2320
+ */
2321
+ connectEmail?: boolean | null;
2322
+ /**
2323
+ * Flag indicating if connecting Twitter is required.
2324
+ */
2325
+ connectTwitter?: boolean | null;
2326
+ points?: ReferralRequirements.Points | null;
2327
+ }
2328
+ namespace ReferralRequirements {
2329
+ interface Points {
2330
+ /**
2331
+ * Points required for referral.
2332
+ */
2333
+ amount?: number | null;
2334
+ /**
2335
+ * ID of the loyalty currency for referral.
2336
+ */
2337
+ loyaltyCurrecyId?: string | null;
2338
+ }
2339
+ }
2340
+ /**
2341
+ * Object containing details of the associated smart contract.
2342
+ */
2343
+ interface SmartContract {
2344
+ /**
2345
+ * Mapping of addresses for the smart contract.
2346
+ */
2347
+ addressMapping?: string | null;
2348
+ /**
2349
+ * Object containing details of the amount multiplier from the event.
2350
+ */
2351
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2352
+ /**
2353
+ * ID of the smart contract.
2354
+ */
2355
+ contractId?: string | null;
2356
+ /**
2357
+ * Criteria to evaluate the smart contract event.
2358
+ */
2359
+ criteria?: 'everyEvent' | 'byParameter' | null;
2360
+ /**
2361
+ * Event emitted by the smart contract.
2362
+ */
2363
+ event?: string | null;
2364
+ /**
2365
+ * Array of parameters for the smart contract.
2366
+ */
2367
+ params?: Array<SmartContract.Param> | null;
2368
+ /**
2369
+ * Type of the smart contract interaction.
2370
+ */
2371
+ type?: 'function' | 'event' | null;
2372
+ }
2373
+ namespace SmartContract {
2374
+ /**
2375
+ * Object containing details of the amount multiplier from the event.
2376
+ */
2377
+ interface AmountMultiplier {
2378
+ /**
2379
+ * Mapping of the value for the smart contract.
2380
+ */
2381
+ valueMapping?: string | null;
2382
+ }
2383
+ interface Param {
2384
+ /**
2385
+ * Condition to check for the parameter.
2386
+ */
2387
+ condition?: string | null;
2388
+ /**
2389
+ * Name of the smart contract parameter.
2390
+ */
2391
+ name?: string | null;
2392
+ /**
2393
+ * Value of the parameter.
2394
+ */
2395
+ value?: string | null;
2396
+ }
2397
+ }
2398
+ interface SnapshotProposal {
2399
+ /**
2400
+ * ID of the snapshot proposal.
2401
+ */
2402
+ id: string;
2403
+ /**
2404
+ * Space associated with the snapshot proposal.
2405
+ */
2406
+ space: string;
2407
+ }
2408
+ interface StreakArray {
2409
+ /**
2410
+ * Reward amount for achieving the streak milestone.
2411
+ */
2412
+ streakAmount: number;
2413
+ /**
2414
+ * Milestone required to achieve the streak.
2415
+ */
2416
+ streakMilestone: number;
2417
+ }
2418
+ /**
2419
+ * Metadata for swap loyalty rules
2420
+ */
2421
+ interface Swap {
2422
+ provider?: 'any' | 'relay' | 'lifi';
2423
+ relayReferrerId?: string;
2424
+ requireCrossChainSwap?: boolean;
2425
+ swappedToChain?: 'any' | number | string;
2426
+ swappedToTokens?: Array<Swap.SwappedToToken>;
2427
+ tokenMode?: 'any' | 'specific';
2428
+ trackTokenAmount?: boolean;
2429
+ }
2430
+ namespace Swap {
2431
+ interface SwappedToToken {
2432
+ address: string;
2433
+ chainId: string;
2434
+ }
2435
+ }
2436
+ }
1306
2437
  }
1307
2438
  }
1308
2439
  export interface RuleDeleteResponse {
@@ -1310,7 +2441,7 @@ export interface RuleDeleteResponse {
1310
2441
  deletedAt: string;
1311
2442
  }
1312
2443
  export interface RuleCompleteResponse {
1313
- message: string;
2444
+ message: 'Completion request added to queue' | 'Link click being verified, come back later to check the status';
1314
2445
  }
1315
2446
  export interface RuleGetStatusResponse {
1316
2447
  data: Array<RuleGetStatusResponse.Data>;
@@ -1318,9 +2449,110 @@ export interface RuleGetStatusResponse {
1318
2449
  export declare namespace RuleGetStatusResponse {
1319
2450
  interface Data {
1320
2451
  loyaltyRuleId: string;
1321
- status: 'pending' | 'processing' | 'completed' | 'failed';
1322
2452
  userId: string;
2453
+ /**
2454
+ * The ID of the loyalty rule status for the Progress object
2455
+ */
2456
+ id?: string;
2457
+ createdAt?: string;
2458
+ fulfilledAt?: string | null;
2459
+ /**
2460
+ * Categorized examples of messages that may be returned for a loyalty rule's
2461
+ * processing result.
2462
+ *
2463
+ * User Onboarding
2464
+ *
2465
+ * - Check In: "Streak successful"
2466
+ * - Complete Profile Details: "Profile not complete"
2467
+ *
2468
+ * Connect Accounts
2469
+ *
2470
+ * - Connect TikTok: "TikTok not connected"
2471
+ * - Connect Discord: "Discord not connected", "Discord request timeout"
2472
+ * - Connect X: "Twitter not connected", "Twitter not connected or content url is
2473
+ * required"
2474
+ * - Connect Email: "Email address not connected"
2475
+ * - Connect Telegram: "Telegram not connected", "user has not setup telegram (no
2476
+ * telegramUsername), please setup username in telegram and reconnect.",
2477
+ * "Telegram request rate-limited"
2478
+ * - Connect Steam: "Steam not connected"
2479
+ * - Connect Youtube: "Youtube not connected"
2480
+ *
2481
+ * Social Quests
2482
+ *
2483
+ * - Join Telegram Group: "Telegram Channel not joined", "Telegram Channel joined
2484
+ * successfully"
2485
+ * - Post on TikTok: "TikTok post not verified"
2486
+ * - Comment on an X Post: "Quest Completed: You have commented on the tweet",
2487
+ * "Quest Not Completed: Comment not found for the specified tweet"
2488
+ * - Repost an X Post: "Quest Completed: You have retweeted the tweet", "Quest Not
2489
+ * Completed: Retweet not found for the specified tweet", "Quest Completed: You
2490
+ * have retweeted and commented on the tweet", "Quest Not Completed: You have not
2491
+ * retweeted or commented on the tweet"
2492
+ * - Follow an X Account: "Missing required parameters: twitterUserId,
2493
+ * targetUsername", "Quest Completed: You are a follower of
2494
+ * @${targetUsername}", "Quest Not Completed: Please follow @${targetUsername}
2495
+ * and try again in few minutes"
2496
+ * - React to an X Post: "Missing required parameters: texts, twitterUserId,
2497
+ * userTweetId", "No text provided", "Quest Completed: You have posted {tweetId}
2498
+ * a tweet with the text {text}", "Quest Not Completed: Your all previous {COUNT}
2499
+ * posts are already claimed. Please post a new tweet and try again in a few
2500
+ * minutes.", "Tweet is already claimed", "Tweet does not belong to the user",
2501
+ * "Text not found in tweet", "Tweet is before the quest start time", "Tweet does
2502
+ * not have media", "Text found in tweet"
2503
+ * - Add Text to X Bio: "Missing required parameters: texts, twitterUserId", "User
2504
+ * not found", "Text found in bio", "Text not found in bio"
2505
+ * - Add Text to X Username: "Missing required parameters: texts, twitterUserId",
2506
+ * "User not found", "Text found in username", "Text not found in username"
2507
+ * - Comment on an X Post with Text: "Missing required parameters: texts,
2508
+ * twitterUserId", "Comment is already claimed", "Text found in comment", "Text
2509
+ * not found in comment", "Tweet not found or could not be retrieved"
2510
+ * - Comment on a YouTube Video: "Youtube comment added", "Youtube comment not
2511
+ * added"
2512
+ * - Subscribe to a YouTube Channel: "Youtube channel subscribed", "Quest failed,
2513
+ * please make sure you have made your subscriptions public in youtube"
2514
+ * - Get X post impressions: "You've already claimed the reward for this impression
2515
+ * range."
2516
+ * - Add an Item to Steam Wishlist: "Steam Wishlist item added", "Steam Wishlist
2517
+ * item not added"
2518
+ *
2519
+ * Complex Onchain Logic
2520
+ *
2521
+ * - Token Swap: "Swap rewards calculated successfully", "Swap rule failed"
2522
+ *
2523
+ * Other
2524
+ *
2525
+ * - Answer a Quiz: "Quiz question not configured", "No question response found",
2526
+ * "Incorrect answer", "Correct answer"
2527
+ * - Answer a Poll: "Poll question not configured", "Poll response recorded"
2528
+ * - Spend in Shopify Store: "Shopify not connected"
2529
+ * - Points Airdrop: "Seems like you're not eligible for this points airdrop."
2530
+ *
2531
+ * General
2532
+ *
2533
+ * - "Quest already completed"
2534
+ * - "Quest already completed using the same social account (${socialAccountName}),
2535
+ * with the different user."
2536
+ * - "You've already claimed the reward for this quest."
2537
+ * - "Quest not achieved, please try again."
2538
+ * - "Rule is not setup"
2539
+ * - "Request aborted due to timeout"
2540
+ * - "Google account not connected"
2541
+ * - "Claim failed: Multiplier is already active"
2542
+ */
1323
2543
  message?: string;
2544
+ organizationId?: string;
2545
+ /**
2546
+ * The progress of the loyalty rule from 0 to 100
2547
+ */
2548
+ progress?: number;
2549
+ /**
2550
+ * Status of the queued job, this is only returned if the job is queued and being
2551
+ * processed, this wil be retained for 10 minutes after the job is completed
2552
+ */
2553
+ status?: 'pending' | 'processing' | 'completed' | 'failed';
2554
+ updatedAt?: string;
2555
+ websiteId?: string;
1324
2556
  }
1325
2557
  }
1326
2558
  export interface RuleCreateParams {
@@ -1367,7 +2599,7 @@ export interface RuleCreateParams {
1367
2599
  /**
1368
2600
  * Type of loyalty rule being created
1369
2601
  */
1370
- type: 'Bonus' | 'BoughtOn' | 'BoughtWithRoyalties' | 'DiscordMessages' | 'Listing' | 'Lodging' | 'MintOn' | 'PoapClaim' | 'SnagSocialsConnected' | 'SnapshotFullset' | 'SnapshotHold' | 'SoldOn' | 'SoldWithRoyalties' | 'TokenHold' | 'TwitterBio' | 'TwitterHashTagPost' | 'Retweet' | 'check_in' | 'code_entry' | 'connect_wallet' | 'connected_discord' | 'connected_email' | 'connected_epic' | 'connected_steam' | 'connected_telegram' | 'connected_twitter' | 'create_partner_account' | 'discord_member' | 'drip_x_follow' | 'drip_x_new_tweet' | 'drip_x_text_in_bio' | 'drip_x_text_in_comment' | 'drip_x_text_in_name' | 'drip_x_tweet' | 'external_rule' | 'link_click' | 'manual_upload' | 'profile_completed' | 'referred_user' | 'smart_contract_event' | 'snapshot_governance' | 'telegram_join' | 'telegram_messages' | 'text_input' | 'token_hold_erc20' | 'tweet_liked_by_project' | 'twitter_comment' | 'twitter_follow' | 'twitter_followers' | 'twitter_like' | 'twitter_post_hashtag' | 'quiz' | 'poll';
2602
+ type: 'Bonus' | 'BoughtOn' | 'BoughtWithRoyalties' | 'DiscordMessages' | 'Listing' | 'Lodging' | 'MintOn' | 'PoapClaim' | 'SnagSocialsConnected' | 'SnapshotFullset' | 'SnapshotHold' | 'SoldOn' | 'SoldWithRoyalties' | 'TokenHold' | 'TwitterBio' | 'TwitterHashTagPost' | 'Retweet' | 'check_in' | 'code_entry' | 'connect_wallet' | 'connected_discord' | 'connected_email' | 'connected_epic' | 'connected_steam' | 'connected_telegram' | 'connected_twitter' | 'create_partner_account' | 'discord_member' | 'drip_x_follow' | 'drip_x_new_tweet' | 'drip_x_text_in_bio' | 'drip_x_text_in_comment' | 'drip_x_text_in_name' | 'drip_x_tweet' | 'external_rule' | 'link_click' | 'manual_upload' | 'profile_completed' | 'referred_user' | 'smart_contract_event' | 'snapshot_governance' | 'telegram_join' | 'telegram_messages' | 'text_input' | 'token_hold_erc20' | 'tweet_liked_by_project' | 'twitter_comment' | 'twitter_follow' | 'twitter_followers' | 'twitter_like' | 'twitter_post_hashtag' | 'quiz' | 'poll' | 'steam_wishlist' | 'liquidity_uniswap_v2' | 'liquidity_uniswap_v3' | 'points_airdrop' | 'youtube_subscribers' | 'youtube_comment' | 'shopify_spend' | 'swap' | 'tiktok_post' | 'post_impressions' | 'discord_join' | 'connected_youtube' | 'connected_tiktok';
1371
2603
  /**
1372
2604
  * Unique identifier for the associated website
1373
2605
  */
@@ -1376,6 +2608,10 @@ export interface RuleCreateParams {
1376
2608
  * URL of the background asset to be displayed
1377
2609
  */
1378
2610
  backgroundAssetUrl?: string;
2611
+ /**
2612
+ * The type of claim for the reward
2613
+ */
2614
+ claimType?: 'manual' | 'auto' | null;
1379
2615
  /**
1380
2616
  * Blockchain address of the associated collection
1381
2617
  */
@@ -1396,6 +2632,11 @@ export interface RuleCreateParams {
1396
2632
  * Optional detailed description of the rule
1397
2633
  */
1398
2634
  description?: string;
2635
+ duplicatedFromId?: string | null;
2636
+ /**
2637
+ * ID of the external integration
2638
+ */
2639
+ externalIntegrationId?: string | null;
1399
2640
  /**
1400
2641
  * Whether to hide this rule in the user interface
1401
2642
  */
@@ -1403,15 +2644,33 @@ export interface RuleCreateParams {
1403
2644
  /**
1404
2645
  * Interval between rule executions
1405
2646
  */
1406
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
2647
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1407
2648
  /**
1408
2649
  * Whether this rule is mandatory
1409
2650
  */
1410
2651
  isRequired?: boolean;
2652
+ /**
2653
+ * Unique identifier for the loyalty badge
2654
+ */
2655
+ loyaltyBadgeId?: string | null;
1411
2656
  /**
1412
2657
  * Unique identifier for the loyalty rule group
1413
2658
  */
1414
2659
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
2660
+ /**
2661
+ * URL for uploading loyalty user allotment via CSV
2662
+ */
2663
+ loyaltyUserAllotmentCsvUrl?: string;
2664
+ /**
2665
+ * The interval for the max amount. Available for the smart contract and external
2666
+ * rules.
2667
+ */
2668
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
2669
+ /**
2670
+ * The maximum amount of points a user can earn per interval. Available for the
2671
+ * smart contract and external rules.
2672
+ */
2673
+ maxAmountPerInterval?: number | null;
1415
2674
  /**
1416
2675
  * URL of the media to be displayed
1417
2676
  */
@@ -1419,25 +2678,41 @@ export interface RuleCreateParams {
1419
2678
  /**
1420
2679
  * Blockchain network where the rule will apply
1421
2680
  */
1422
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
2681
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
2682
+ /**
2683
+ * OAuth credentials associated with the rule
2684
+ */
2685
+ oauthCredentialsId?: string | null;
2686
+ /**
2687
+ * The lifetime of the reward
2688
+ */
2689
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
2690
+ /**
2691
+ * Type of reward issued by the rule
2692
+ */
2693
+ rewardType?: 'points' | 'multiplier' | 'badge';
1423
2694
  /**
1424
- * OAuth credentials associated with the rule
2695
+ * URL of the Shopify store
1425
2696
  */
1426
- oauthCredentialsId?: string | null;
2697
+ shopifyStoreUrl?: string | null;
1427
2698
  /**
1428
- * Type of reward issued by the rule
2699
+ * Whether to show this rule before the start time
1429
2700
  */
1430
- rewardType?: 'points' | 'multiplier';
2701
+ showBeforeStart?: boolean;
1431
2702
  /**
1432
- * Identifier for associated subscriptions
2703
+ * Optional subscription id for the rule
1433
2704
  */
1434
- subscriptionIdentifier?: string | null;
2705
+ subscriptionId?: string | null;
1435
2706
  }
1436
2707
  export declare namespace RuleCreateParams {
1437
2708
  /**
1438
2709
  * Additional metadata for the loyalty rule
1439
2710
  */
1440
2711
  interface Metadata {
2712
+ /**
2713
+ * Number of tokens per batch.
2714
+ */
2715
+ batchSize?: number | null;
1441
2716
  /**
1442
2717
  * Text displayed on the action button.
1443
2718
  */
@@ -1457,7 +2732,7 @@ export declare namespace RuleCreateParams {
1457
2732
  /**
1458
2733
  * Text to check in the Twitter post, username, or bio.
1459
2734
  */
1460
- checkText?: string | null;
2735
+ checkText?: string | Array<string> | null;
1461
2736
  /**
1462
2737
  * Array of collections associated with the rule.
1463
2738
  */
@@ -1465,7 +2740,13 @@ export declare namespace RuleCreateParams {
1465
2740
  /**
1466
2741
  * Conditions for completing the profile.
1467
2742
  */
1468
- completeProfileConditions?: Record<string, boolean> | null;
2743
+ completeProfileConditions?: {
2744
+ [key: string]: boolean;
2745
+ } | null;
2746
+ /**
2747
+ * Description of the external rule condition (only for external rules)
2748
+ */
2749
+ conditionDescription?: string;
1469
2750
  /**
1470
2751
  * Object containing details for the call-to-action.
1471
2752
  */
@@ -1474,6 +2755,10 @@ export declare namespace RuleCreateParams {
1474
2755
  * API key for custom rewards integration.
1475
2756
  */
1476
2757
  customRewardsApiKey?: string;
2758
+ /**
2759
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2760
+ */
2761
+ directRpc?: boolean;
1477
2762
  /**
1478
2763
  * Array of Discord servers, channels, and roles to join.
1479
2764
  */
@@ -1494,6 +2779,10 @@ export declare namespace RuleCreateParams {
1494
2779
  * Flag indicating whether the verified multiplier is enabled.
1495
2780
  */
1496
2781
  enableVerifiedMultiplier?: boolean;
2782
+ /**
2783
+ * Type of ERC20 token for the loyalty rule.
2784
+ */
2785
+ erc20Type?: 'erc20' | 'native';
1497
2786
  /**
1498
2787
  * Fill source of the order for the token sale
1499
2788
  */
@@ -1510,10 +2799,6 @@ export declare namespace RuleCreateParams {
1510
2799
  * Indicates if the item has never been sold.
1511
2800
  */
1512
2801
  hasNeverSold?: boolean;
1513
- /**
1514
- * Flag indicating whether the order source is included.
1515
- */
1516
- hasOrderSource?: boolean;
1517
2802
  /**
1518
2803
  * Indicates if the full royalty has been paid for items.
1519
2804
  */
@@ -1530,10 +2815,18 @@ export declare namespace RuleCreateParams {
1530
2815
  * URL of the image associated with the rule.
1531
2816
  */
1532
2817
  imageUrl?: string | null;
2818
+ /**
2819
+ * If enabled, the first transaction done on the platform will complete this rule
2820
+ */
2821
+ isCheckInOnEveryTxn?: boolean;
1533
2822
  /**
1534
2823
  * Indicates if the multiplier has been applied to rewards.
1535
2824
  */
1536
2825
  isMultiplierApplied?: boolean;
2826
+ /**
2827
+ * Flag indicating if the rule is restricted to new users.
2828
+ */
2829
+ isRestrictedToNewUsers?: boolean;
1537
2830
  /**
1538
2831
  * Flag indicating if rewards are applied retroactively.
1539
2832
  */
@@ -1546,6 +2839,10 @@ export declare namespace RuleCreateParams {
1546
2839
  * Optional link associated with the metadata.
1547
2840
  */
1548
2841
  link?: string | null;
2842
+ /**
2843
+ * Liquidity pool details.
2844
+ */
2845
+ liquidity?: Metadata.Liquidity;
1549
2846
  /**
1550
2847
  * Maximum quantity constraint for token holding.
1551
2848
  */
@@ -1578,14 +2875,22 @@ export declare namespace RuleCreateParams {
1578
2875
  * give points for only one token ownership per contract
1579
2876
  */
1580
2877
  onlyRewardSingleTokenOwnership?: boolean | null;
1581
- /**
1582
- * Order source of the order for the token sale
1583
- */
1584
- orderSource?: string;
1585
2878
  /**
1586
2879
  * Promotional code associated with the rule.
1587
2880
  */
1588
2881
  promoCode?: string;
2882
+ /**
2883
+ * URL of the CSV file containing promo codes.
2884
+ */
2885
+ promoCodeCsvUrl?: string;
2886
+ /**
2887
+ * Numbers of the promotional code to be generated.
2888
+ */
2889
+ promoCodeLength?: number | null;
2890
+ /**
2891
+ * Type of the promotional code.
2892
+ */
2893
+ promoCodeType?: 'code' | 'csv' | 'generate';
1589
2894
  /**
1590
2895
  * Array defining ranges and corresponding rewards.
1591
2896
  */
@@ -1598,10 +2903,51 @@ export declare namespace RuleCreateParams {
1598
2903
  * Lump sum reward given to a referrer.
1599
2904
  */
1600
2905
  referrerReward?: number | null;
2906
+ /**
2907
+ * Loyalty currency ID of the referrer reward.
2908
+ */
2909
+ referrerRewardLoyaltyCurrencyId?: string | null;
2910
+ /**
2911
+ * Flag indicating if the post link is required.
2912
+ */
2913
+ requirePostLink?: boolean | null;
2914
+ /**
2915
+ * Flag indicating if media metadata is required.
2916
+ */
2917
+ requirePostMediaLink?: boolean | null;
2918
+ /**
2919
+ * Flag indicating if the rule can also reward badges per range.
2920
+ */
2921
+ rewardBadgePerRange?: boolean;
2922
+ /**
2923
+ * Flag indicating if the reward is rewarded by batch.
2924
+ */
2925
+ rewardByBatch?: boolean | null;
2926
+ /**
2927
+ * Criteria to evaluate the reward.
2928
+ */
2929
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
2930
+ /**
2931
+ * Flag indicating if the reward is rewarded per action.
2932
+ */
2933
+ rewardPerAction?: boolean | null;
1601
2934
  /**
1602
2935
  * Flag indicating if rewards are given per impression.
1603
2936
  */
1604
2937
  rewardPerImpression?: boolean | null;
2938
+ /**
2939
+ * Flag indicating if the rule should reward based on value of traded tokens
2940
+ * instead of count.
2941
+ */
2942
+ rewardPerValue?: boolean;
2943
+ /**
2944
+ * Wallet address of the user can only be used if userId is not provided
2945
+ */
2946
+ royaltyAddress?: string;
2947
+ /**
2948
+ * Royalty percentage of the item.
2949
+ */
2950
+ royaltyPercentage?: number;
1605
2951
  /**
1606
2952
  * Currency associated with sales.
1607
2953
  */
@@ -1625,7 +2971,7 @@ export declare namespace RuleCreateParams {
1625
2971
  /**
1626
2972
  * Social media platform associated with the rule.
1627
2973
  */
1628
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
2974
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | null;
1629
2975
  /**
1630
2976
  * URL of the social platform's logo.
1631
2977
  */
@@ -1634,10 +2980,18 @@ export declare namespace RuleCreateParams {
1634
2980
  * Name of the social platform.
1635
2981
  */
1636
2982
  socialPlatformName?: string | null;
2983
+ /**
2984
+ * ID of the Steam app.
2985
+ */
2986
+ steamAppId?: string | null;
1637
2987
  /**
1638
2988
  * Array of streak milestones and corresponding rewards.
1639
2989
  */
1640
2990
  streakArray?: Array<Metadata.StreakArray> | null;
2991
+ /**
2992
+ * Metadata for swap loyalty rules
2993
+ */
2994
+ swap?: Metadata.Swap;
1641
2995
  /**
1642
2996
  * ID of the Telegram channel.
1643
2997
  */
@@ -1650,6 +3004,11 @@ export declare namespace RuleCreateParams {
1650
3004
  * Flag indicating if all contracts are tracked.
1651
3005
  */
1652
3006
  trackAllContracts?: boolean | null;
3007
+ /**
3008
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3009
+ * completed once the progress is 100%.
3010
+ */
3011
+ trackProgress?: boolean | null;
1653
3012
  /**
1654
3013
  * URL of the associated Twitter account.
1655
3014
  */
@@ -1685,7 +3044,15 @@ export declare namespace RuleCreateParams {
1685
3044
  /**
1686
3045
  * Type of wallet associated with the rule.
1687
3046
  */
1688
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
3047
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | null;
3048
+ /**
3049
+ * ID of the Youtube channel.
3050
+ */
3051
+ youtubeChannelId?: string | null;
3052
+ /**
3053
+ * ID of the Youtube video.
3054
+ */
3055
+ youtubeVideoId?: string | null;
1689
3056
  }
1690
3057
  namespace Metadata {
1691
3058
  interface Collection {
@@ -1700,7 +3067,7 @@ export declare namespace RuleCreateParams {
1700
3067
  /**
1701
3068
  * Blockchain network of the collection.
1702
3069
  */
1703
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
3070
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
1704
3071
  }
1705
3072
  /**
1706
3073
  * Object containing details for the call-to-action.
@@ -1765,6 +3132,49 @@ export declare namespace RuleCreateParams {
1765
3132
  */
1766
3133
  id: string;
1767
3134
  }
3135
+ /**
3136
+ * Liquidity pool details.
3137
+ */
3138
+ interface Liquidity {
3139
+ /**
3140
+ * Calculation type of the liquidity pool.
3141
+ */
3142
+ calculationType?: 'fixed' | 'custom';
3143
+ /**
3144
+ * Custom function to calculate the the reward amount based on the liquidity
3145
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3146
+ * USD.
3147
+ */
3148
+ customFunction?: string;
3149
+ /**
3150
+ * Liquidity provided per day in USD
3151
+ */
3152
+ liquidityPerDay?: number;
3153
+ /**
3154
+ * Blockchain network of the liquidity pool.
3155
+ */
3156
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
3157
+ /**
3158
+ * Indicates if only in-range liquidity is rewarded.
3159
+ */
3160
+ onlyRewardInRangeLiquidity?: boolean;
3161
+ /**
3162
+ * Array of liquidity pools associated with the rule.
3163
+ */
3164
+ pools?: Array<Liquidity.Pool>;
3165
+ /**
3166
+ * Protocol of the liquidity pool.
3167
+ */
3168
+ protocol?: string;
3169
+ }
3170
+ namespace Liquidity {
3171
+ interface Pool {
3172
+ /**
3173
+ * Unique identifier of the liquidity pool.
3174
+ */
3175
+ id: string;
3176
+ }
3177
+ }
1768
3178
  interface Range {
1769
3179
  /**
1770
3180
  * Reward amount for this range.
@@ -1778,6 +3188,14 @@ export declare namespace RuleCreateParams {
1778
3188
  * Start value of the range.
1779
3189
  */
1780
3190
  startRange: number;
3191
+ /**
3192
+ * ID of the loyalty badge for this range.
3193
+ */
3194
+ loyaltyBadgeId?: string;
3195
+ /**
3196
+ * Amount of the loyalty multiplier for this range.
3197
+ */
3198
+ loyaltyMultiplierAmount?: number;
1781
3199
  }
1782
3200
  /**
1783
3201
  * Object defining referral requirements.
@@ -1821,18 +3239,14 @@ export declare namespace RuleCreateParams {
1821
3239
  * Object containing details of the associated smart contract.
1822
3240
  */
1823
3241
  interface SmartContract {
1824
- /**
1825
- * ABI of the smart contract.
1826
- */
1827
- abi?: string | null;
1828
3242
  /**
1829
3243
  * Mapping of addresses for the smart contract.
1830
3244
  */
1831
3245
  addressMapping?: string | null;
1832
3246
  /**
1833
- * Array of bonus details applied to the rule.
3247
+ * Object containing details of the amount multiplier from the event.
1834
3248
  */
1835
- bonus?: Array<SmartContract.Bonus> | null;
3249
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1836
3250
  /**
1837
3251
  * ID of the smart contract.
1838
3252
  */
@@ -1841,58 +3255,28 @@ export declare namespace RuleCreateParams {
1841
3255
  * Criteria to evaluate the smart contract event.
1842
3256
  */
1843
3257
  criteria?: 'everyEvent' | 'byParameter' | null;
1844
- /**
1845
- * Time range applied to the rule.
1846
- */
1847
- customRange?: SmartContract.CustomRange | null;
1848
3258
  /**
1849
3259
  * Event emitted by the smart contract.
1850
3260
  */
1851
3261
  event?: string | null;
1852
- /**
1853
- * Maximum value allowed for the parameter.
1854
- */
1855
- max?: number | null;
1856
3262
  /**
1857
3263
  * Array of parameters for the smart contract.
1858
3264
  */
1859
3265
  params?: Array<SmartContract.Param> | null;
1860
3266
  /**
1861
- * Flag indicating if a bonus is applied.
1862
- */
1863
- withBonus?: boolean | null;
1864
- /**
1865
- * Flag indicating if a custom range is applied.
1866
- */
1867
- withCustomRange?: boolean | null;
1868
- /**
1869
- * Flag indicating if a maximum limit is applied.
3267
+ * Type of the smart contract interaction.
1870
3268
  */
1871
- withMax?: boolean | null;
3269
+ type?: 'function' | 'event' | null;
1872
3270
  }
1873
3271
  namespace SmartContract {
1874
- interface Bonus {
1875
- /**
1876
- * Amount of the bonus.
1877
- */
1878
- amount?: number | null;
1879
- /**
1880
- * Number of times the bonus is applied.
1881
- */
1882
- count?: number | null;
1883
- }
1884
3272
  /**
1885
- * Time range applied to the rule.
3273
+ * Object containing details of the amount multiplier from the event.
1886
3274
  */
1887
- interface CustomRange {
1888
- /**
1889
- * End time of the custom range.
1890
- */
1891
- endsAt?: string | null;
3275
+ interface AmountMultiplier {
1892
3276
  /**
1893
- * Start time of the custom range.
3277
+ * Mapping of the value for the smart contract.
1894
3278
  */
1895
- startsAt?: string | null;
3279
+ valueMapping?: string | null;
1896
3280
  }
1897
3281
  interface Param {
1898
3282
  /**
@@ -1929,6 +3313,24 @@ export declare namespace RuleCreateParams {
1929
3313
  */
1930
3314
  streakMilestone: number;
1931
3315
  }
3316
+ /**
3317
+ * Metadata for swap loyalty rules
3318
+ */
3319
+ interface Swap {
3320
+ provider?: 'any' | 'relay' | 'lifi';
3321
+ relayReferrerId?: string;
3322
+ requireCrossChainSwap?: boolean;
3323
+ swappedToChain?: 'any' | number | string;
3324
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3325
+ tokenMode?: 'any' | 'specific';
3326
+ trackTokenAmount?: boolean;
3327
+ }
3328
+ namespace Swap {
3329
+ interface SwappedToToken {
3330
+ address: string;
3331
+ chainId: string;
3332
+ }
3333
+ }
1932
3334
  }
1933
3335
  interface Collection {
1934
3336
  /**
@@ -1938,7 +3340,11 @@ export declare namespace RuleCreateParams {
1938
3340
  /**
1939
3341
  * Blockchain network for the collection
1940
3342
  */
1941
- network: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
3343
+ network: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
3344
+ /**
3345
+ * Symbol of the collection.
3346
+ */
3347
+ symbol?: string;
1942
3348
  }
1943
3349
  }
1944
3350
  export interface RuleUpdateParams {
@@ -1954,10 +3360,14 @@ export interface RuleUpdateParams {
1954
3360
  * Name of the loyalty rule
1955
3361
  */
1956
3362
  name: string;
3363
+ /**
3364
+ * The type of claim for the reward
3365
+ */
3366
+ claimType?: 'manual' | 'auto' | null;
1957
3367
  /**
1958
3368
  * Blockchain address of the associated collection
1959
3369
  */
1960
- collectionAddress?: string;
3370
+ collectionAddress?: string | null;
1961
3371
  /**
1962
3372
  * List of associated collections
1963
3373
  */
@@ -1982,6 +3392,10 @@ export interface RuleUpdateParams {
1982
3392
  * Effective start time of the rule
1983
3393
  */
1984
3394
  effectiveStartTime?: string | null;
3395
+ /**
3396
+ * ID of the external integration
3397
+ */
3398
+ externalIntegrationId?: string | null;
1985
3399
  /**
1986
3400
  * Frequency of the rule execution
1987
3401
  */
@@ -1993,7 +3407,7 @@ export interface RuleUpdateParams {
1993
3407
  /**
1994
3408
  * Time interval for recurring rule execution
1995
3409
  */
1996
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
3410
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1997
3411
  /**
1998
3412
  * Whether this rule is required for participation
1999
3413
  */
@@ -2002,6 +3416,16 @@ export interface RuleUpdateParams {
2002
3416
  * ID of the rule group section to associate with the rule
2003
3417
  */
2004
3418
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
3419
+ /**
3420
+ * The interval for the max amount. Available for the smart contract and external
3421
+ * rules.
3422
+ */
3423
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
3424
+ /**
3425
+ * The maximum amount of points a user can earn per interval. Available for the
3426
+ * smart contract and external rules.
3427
+ */
3428
+ maxAmountPerInterval?: number | null;
2005
3429
  /**
2006
3430
  * URL of the media to be displayed
2007
3431
  */
@@ -2013,23 +3437,35 @@ export interface RuleUpdateParams {
2013
3437
  /**
2014
3438
  * Blockchain network where the rule will apply
2015
3439
  */
2016
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
3440
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
2017
3441
  /**
2018
3442
  * ID for associated OAuth credentials
2019
3443
  */
2020
3444
  oauthCredentialsId?: string | null;
3445
+ /**
3446
+ * The lifetime of the reward
3447
+ */
3448
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
2021
3449
  /**
2022
3450
  * Type of reward issued by this rule
2023
3451
  */
2024
- rewardType?: 'points' | 'multiplier';
3452
+ rewardType?: 'points' | 'multiplier' | 'badge';
3453
+ /**
3454
+ * URL of the Shopify store
3455
+ */
3456
+ shopifyStoreUrl?: string | null;
3457
+ /**
3458
+ * Whether to show this rule before the start time
3459
+ */
3460
+ showBeforeStart?: boolean;
2025
3461
  /**
2026
3462
  * Start time for the loyalty rule
2027
3463
  */
2028
3464
  startTime?: string | null;
2029
3465
  /**
2030
- * Optional subscription identifier for the rule
3466
+ * Optional subscription id for the rule
2031
3467
  */
2032
- subscriptionIdentifier?: string | null;
3468
+ subscriptionId?: string | null;
2033
3469
  }
2034
3470
  export declare namespace RuleUpdateParams {
2035
3471
  interface Collection {
@@ -2040,12 +3476,20 @@ export declare namespace RuleUpdateParams {
2040
3476
  /**
2041
3477
  * Blockchain network for the collection
2042
3478
  */
2043
- network: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
3479
+ network: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
3480
+ /**
3481
+ * Symbol of the collection.
3482
+ */
3483
+ symbol?: string;
2044
3484
  }
2045
3485
  /**
2046
3486
  * Additional metadata for the loyalty rule
2047
3487
  */
2048
3488
  interface Metadata {
3489
+ /**
3490
+ * Number of tokens per batch.
3491
+ */
3492
+ batchSize?: number | null;
2049
3493
  /**
2050
3494
  * Text displayed on the action button.
2051
3495
  */
@@ -2065,7 +3509,7 @@ export declare namespace RuleUpdateParams {
2065
3509
  /**
2066
3510
  * Text to check in the Twitter post, username, or bio.
2067
3511
  */
2068
- checkText?: string | null;
3512
+ checkText?: string | Array<string> | null;
2069
3513
  /**
2070
3514
  * Array of collections associated with the rule.
2071
3515
  */
@@ -2073,7 +3517,13 @@ export declare namespace RuleUpdateParams {
2073
3517
  /**
2074
3518
  * Conditions for completing the profile.
2075
3519
  */
2076
- completeProfileConditions?: Record<string, boolean> | null;
3520
+ completeProfileConditions?: {
3521
+ [key: string]: boolean;
3522
+ } | null;
3523
+ /**
3524
+ * Description of the external rule condition (only for external rules)
3525
+ */
3526
+ conditionDescription?: string;
2077
3527
  /**
2078
3528
  * Object containing details for the call-to-action.
2079
3529
  */
@@ -2082,6 +3532,10 @@ export declare namespace RuleUpdateParams {
2082
3532
  * API key for custom rewards integration.
2083
3533
  */
2084
3534
  customRewardsApiKey?: string;
3535
+ /**
3536
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
3537
+ */
3538
+ directRpc?: boolean;
2085
3539
  /**
2086
3540
  * Array of Discord servers, channels, and roles to join.
2087
3541
  */
@@ -2102,6 +3556,10 @@ export declare namespace RuleUpdateParams {
2102
3556
  * Flag indicating whether the verified multiplier is enabled.
2103
3557
  */
2104
3558
  enableVerifiedMultiplier?: boolean;
3559
+ /**
3560
+ * Type of ERC20 token for the loyalty rule.
3561
+ */
3562
+ erc20Type?: 'erc20' | 'native';
2105
3563
  /**
2106
3564
  * Fill source of the order for the token sale
2107
3565
  */
@@ -2118,10 +3576,6 @@ export declare namespace RuleUpdateParams {
2118
3576
  * Indicates if the item has never been sold.
2119
3577
  */
2120
3578
  hasNeverSold?: boolean;
2121
- /**
2122
- * Flag indicating whether the order source is included.
2123
- */
2124
- hasOrderSource?: boolean;
2125
3579
  /**
2126
3580
  * Indicates if the full royalty has been paid for items.
2127
3581
  */
@@ -2138,10 +3592,18 @@ export declare namespace RuleUpdateParams {
2138
3592
  * URL of the image associated with the rule.
2139
3593
  */
2140
3594
  imageUrl?: string | null;
3595
+ /**
3596
+ * If enabled, the first transaction done on the platform will complete this rule
3597
+ */
3598
+ isCheckInOnEveryTxn?: boolean;
2141
3599
  /**
2142
3600
  * Indicates if the multiplier has been applied to rewards.
2143
3601
  */
2144
3602
  isMultiplierApplied?: boolean;
3603
+ /**
3604
+ * Flag indicating if the rule is restricted to new users.
3605
+ */
3606
+ isRestrictedToNewUsers?: boolean;
2145
3607
  /**
2146
3608
  * Flag indicating if rewards are applied retroactively.
2147
3609
  */
@@ -2154,6 +3616,10 @@ export declare namespace RuleUpdateParams {
2154
3616
  * Optional link associated with the metadata.
2155
3617
  */
2156
3618
  link?: string | null;
3619
+ /**
3620
+ * Liquidity pool details.
3621
+ */
3622
+ liquidity?: Metadata.Liquidity;
2157
3623
  /**
2158
3624
  * Maximum quantity constraint for token holding.
2159
3625
  */
@@ -2186,14 +3652,22 @@ export declare namespace RuleUpdateParams {
2186
3652
  * give points for only one token ownership per contract
2187
3653
  */
2188
3654
  onlyRewardSingleTokenOwnership?: boolean | null;
2189
- /**
2190
- * Order source of the order for the token sale
2191
- */
2192
- orderSource?: string;
2193
3655
  /**
2194
3656
  * Promotional code associated with the rule.
2195
3657
  */
2196
3658
  promoCode?: string;
3659
+ /**
3660
+ * URL of the CSV file containing promo codes.
3661
+ */
3662
+ promoCodeCsvUrl?: string;
3663
+ /**
3664
+ * Numbers of the promotional code to be generated.
3665
+ */
3666
+ promoCodeLength?: number | null;
3667
+ /**
3668
+ * Type of the promotional code.
3669
+ */
3670
+ promoCodeType?: 'code' | 'csv' | 'generate';
2197
3671
  /**
2198
3672
  * Array defining ranges and corresponding rewards.
2199
3673
  */
@@ -2206,10 +3680,51 @@ export declare namespace RuleUpdateParams {
2206
3680
  * Lump sum reward given to a referrer.
2207
3681
  */
2208
3682
  referrerReward?: number | null;
3683
+ /**
3684
+ * Loyalty currency ID of the referrer reward.
3685
+ */
3686
+ referrerRewardLoyaltyCurrencyId?: string | null;
3687
+ /**
3688
+ * Flag indicating if the post link is required.
3689
+ */
3690
+ requirePostLink?: boolean | null;
3691
+ /**
3692
+ * Flag indicating if media metadata is required.
3693
+ */
3694
+ requirePostMediaLink?: boolean | null;
3695
+ /**
3696
+ * Flag indicating if the rule can also reward badges per range.
3697
+ */
3698
+ rewardBadgePerRange?: boolean;
3699
+ /**
3700
+ * Flag indicating if the reward is rewarded by batch.
3701
+ */
3702
+ rewardByBatch?: boolean | null;
3703
+ /**
3704
+ * Criteria to evaluate the reward.
3705
+ */
3706
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
3707
+ /**
3708
+ * Flag indicating if the reward is rewarded per action.
3709
+ */
3710
+ rewardPerAction?: boolean | null;
2209
3711
  /**
2210
3712
  * Flag indicating if rewards are given per impression.
2211
3713
  */
2212
3714
  rewardPerImpression?: boolean | null;
3715
+ /**
3716
+ * Flag indicating if the rule should reward based on value of traded tokens
3717
+ * instead of count.
3718
+ */
3719
+ rewardPerValue?: boolean;
3720
+ /**
3721
+ * Wallet address of the user can only be used if userId is not provided
3722
+ */
3723
+ royaltyAddress?: string;
3724
+ /**
3725
+ * Royalty percentage of the item.
3726
+ */
3727
+ royaltyPercentage?: number;
2213
3728
  /**
2214
3729
  * Currency associated with sales.
2215
3730
  */
@@ -2233,7 +3748,7 @@ export declare namespace RuleUpdateParams {
2233
3748
  /**
2234
3749
  * Social media platform associated with the rule.
2235
3750
  */
2236
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
3751
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | null;
2237
3752
  /**
2238
3753
  * URL of the social platform's logo.
2239
3754
  */
@@ -2242,10 +3757,18 @@ export declare namespace RuleUpdateParams {
2242
3757
  * Name of the social platform.
2243
3758
  */
2244
3759
  socialPlatformName?: string | null;
3760
+ /**
3761
+ * ID of the Steam app.
3762
+ */
3763
+ steamAppId?: string | null;
2245
3764
  /**
2246
3765
  * Array of streak milestones and corresponding rewards.
2247
3766
  */
2248
3767
  streakArray?: Array<Metadata.StreakArray> | null;
3768
+ /**
3769
+ * Metadata for swap loyalty rules
3770
+ */
3771
+ swap?: Metadata.Swap;
2249
3772
  /**
2250
3773
  * ID of the Telegram channel.
2251
3774
  */
@@ -2258,6 +3781,11 @@ export declare namespace RuleUpdateParams {
2258
3781
  * Flag indicating if all contracts are tracked.
2259
3782
  */
2260
3783
  trackAllContracts?: boolean | null;
3784
+ /**
3785
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3786
+ * completed once the progress is 100%.
3787
+ */
3788
+ trackProgress?: boolean | null;
2261
3789
  /**
2262
3790
  * URL of the associated Twitter account.
2263
3791
  */
@@ -2293,7 +3821,15 @@ export declare namespace RuleUpdateParams {
2293
3821
  /**
2294
3822
  * Type of wallet associated with the rule.
2295
3823
  */
2296
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
3824
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | null;
3825
+ /**
3826
+ * ID of the Youtube channel.
3827
+ */
3828
+ youtubeChannelId?: string | null;
3829
+ /**
3830
+ * ID of the Youtube video.
3831
+ */
3832
+ youtubeVideoId?: string | null;
2297
3833
  }
2298
3834
  namespace Metadata {
2299
3835
  interface Collection {
@@ -2308,7 +3844,7 @@ export declare namespace RuleUpdateParams {
2308
3844
  /**
2309
3845
  * Blockchain network of the collection.
2310
3846
  */
2311
- network?: 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachainArtio' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'solana' | 'sophon' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'abstract';
3847
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
2312
3848
  }
2313
3849
  /**
2314
3850
  * Object containing details for the call-to-action.
@@ -2373,6 +3909,49 @@ export declare namespace RuleUpdateParams {
2373
3909
  */
2374
3910
  id: string;
2375
3911
  }
3912
+ /**
3913
+ * Liquidity pool details.
3914
+ */
3915
+ interface Liquidity {
3916
+ /**
3917
+ * Calculation type of the liquidity pool.
3918
+ */
3919
+ calculationType?: 'fixed' | 'custom';
3920
+ /**
3921
+ * Custom function to calculate the the reward amount based on the liquidity
3922
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3923
+ * USD.
3924
+ */
3925
+ customFunction?: string;
3926
+ /**
3927
+ * Liquidity provided per day in USD
3928
+ */
3929
+ liquidityPerDay?: number;
3930
+ /**
3931
+ * Blockchain network of the liquidity pool.
3932
+ */
3933
+ network?: 'abstract' | 'abstractTestnet' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalancheFuji' | 'base' | 'baseSepolia' | 'berachain' | 'berachainArtio' | 'berachainBepolia' | 'binance' | 'bscTestnet' | 'campTestnet' | 'fantom' | 'fantomTestnet' | 'flowMainnet' | 'mainnet' | 'nexusTestnet' | 'optimism' | 'polygon' | 'polygon_mumbai' | 'skaleNebula' | 'skaleEuropa' | 'skaleCalypso' | 'solana' | 'sophon' | 'sophonTestnet' | 'sui' | 'superseed' | 'superseedSepolia' | 'vanar' | 'xai' | 'zksync' | 'coti' | 'cotiTestnet' | 'morph' | 'morphTestnet' | 'morphHolesky' | 'ultra' | 'ultraTestnet' | 'nitrograph' | 'sepolia' | 'optimism_sepolia' | 'arbitrumSepolia' | 'goerli' | 'optimism_goerli' | 'arbitrumGoerli' | 'basecamp' | 'somnia' | 'flow_cadence';
3934
+ /**
3935
+ * Indicates if only in-range liquidity is rewarded.
3936
+ */
3937
+ onlyRewardInRangeLiquidity?: boolean;
3938
+ /**
3939
+ * Array of liquidity pools associated with the rule.
3940
+ */
3941
+ pools?: Array<Liquidity.Pool>;
3942
+ /**
3943
+ * Protocol of the liquidity pool.
3944
+ */
3945
+ protocol?: string;
3946
+ }
3947
+ namespace Liquidity {
3948
+ interface Pool {
3949
+ /**
3950
+ * Unique identifier of the liquidity pool.
3951
+ */
3952
+ id: string;
3953
+ }
3954
+ }
2376
3955
  interface Range {
2377
3956
  /**
2378
3957
  * Reward amount for this range.
@@ -2386,6 +3965,14 @@ export declare namespace RuleUpdateParams {
2386
3965
  * Start value of the range.
2387
3966
  */
2388
3967
  startRange: number;
3968
+ /**
3969
+ * ID of the loyalty badge for this range.
3970
+ */
3971
+ loyaltyBadgeId?: string;
3972
+ /**
3973
+ * Amount of the loyalty multiplier for this range.
3974
+ */
3975
+ loyaltyMultiplierAmount?: number;
2389
3976
  }
2390
3977
  /**
2391
3978
  * Object defining referral requirements.
@@ -2429,18 +4016,14 @@ export declare namespace RuleUpdateParams {
2429
4016
  * Object containing details of the associated smart contract.
2430
4017
  */
2431
4018
  interface SmartContract {
2432
- /**
2433
- * ABI of the smart contract.
2434
- */
2435
- abi?: string | null;
2436
4019
  /**
2437
4020
  * Mapping of addresses for the smart contract.
2438
4021
  */
2439
4022
  addressMapping?: string | null;
2440
4023
  /**
2441
- * Array of bonus details applied to the rule.
4024
+ * Object containing details of the amount multiplier from the event.
2442
4025
  */
2443
- bonus?: Array<SmartContract.Bonus> | null;
4026
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2444
4027
  /**
2445
4028
  * ID of the smart contract.
2446
4029
  */
@@ -2449,58 +4032,28 @@ export declare namespace RuleUpdateParams {
2449
4032
  * Criteria to evaluate the smart contract event.
2450
4033
  */
2451
4034
  criteria?: 'everyEvent' | 'byParameter' | null;
2452
- /**
2453
- * Time range applied to the rule.
2454
- */
2455
- customRange?: SmartContract.CustomRange | null;
2456
4035
  /**
2457
4036
  * Event emitted by the smart contract.
2458
4037
  */
2459
4038
  event?: string | null;
2460
- /**
2461
- * Maximum value allowed for the parameter.
2462
- */
2463
- max?: number | null;
2464
4039
  /**
2465
4040
  * Array of parameters for the smart contract.
2466
4041
  */
2467
4042
  params?: Array<SmartContract.Param> | null;
2468
4043
  /**
2469
- * Flag indicating if a bonus is applied.
2470
- */
2471
- withBonus?: boolean | null;
2472
- /**
2473
- * Flag indicating if a custom range is applied.
2474
- */
2475
- withCustomRange?: boolean | null;
2476
- /**
2477
- * Flag indicating if a maximum limit is applied.
4044
+ * Type of the smart contract interaction.
2478
4045
  */
2479
- withMax?: boolean | null;
4046
+ type?: 'function' | 'event' | null;
2480
4047
  }
2481
4048
  namespace SmartContract {
2482
- interface Bonus {
2483
- /**
2484
- * Amount of the bonus.
2485
- */
2486
- amount?: number | null;
2487
- /**
2488
- * Number of times the bonus is applied.
2489
- */
2490
- count?: number | null;
2491
- }
2492
4049
  /**
2493
- * Time range applied to the rule.
4050
+ * Object containing details of the amount multiplier from the event.
2494
4051
  */
2495
- interface CustomRange {
2496
- /**
2497
- * End time of the custom range.
2498
- */
2499
- endsAt?: string | null;
4052
+ interface AmountMultiplier {
2500
4053
  /**
2501
- * Start time of the custom range.
4054
+ * Mapping of the value for the smart contract.
2502
4055
  */
2503
- startsAt?: string | null;
4056
+ valueMapping?: string | null;
2504
4057
  }
2505
4058
  interface Param {
2506
4059
  /**
@@ -2537,15 +4090,51 @@ export declare namespace RuleUpdateParams {
2537
4090
  */
2538
4091
  streakMilestone: number;
2539
4092
  }
4093
+ /**
4094
+ * Metadata for swap loyalty rules
4095
+ */
4096
+ interface Swap {
4097
+ provider?: 'any' | 'relay' | 'lifi';
4098
+ relayReferrerId?: string;
4099
+ requireCrossChainSwap?: boolean;
4100
+ swappedToChain?: 'any' | number | string;
4101
+ swappedToTokens?: Array<Swap.SwappedToToken>;
4102
+ tokenMode?: 'any' | 'specific';
4103
+ trackTokenAmount?: boolean;
4104
+ }
4105
+ namespace Swap {
4106
+ interface SwappedToToken {
4107
+ address: string;
4108
+ chainId: string;
4109
+ }
4110
+ }
2540
4111
  }
2541
4112
  }
2542
4113
  export interface RuleListParams {
4114
+ /**
4115
+ * IDs of the users to filter results by
4116
+ */
4117
+ allotedToUserId?: string | Array<string>;
4118
+ /**
4119
+ * ID of the user group to filter results by
4120
+ */
4121
+ allotedUserGroupId?: string;
2543
4122
  /**
2544
4123
  * Address of the collection to filter by
2545
4124
  */
2546
4125
  collectionAddress?: string;
2547
4126
  /**
2548
- * Maximum number of records to return (max 1000)
4127
+ * If true this will only return active rules, the rules for which the startTime is
4128
+ * in the past and the endTime is in the future
4129
+ */
4130
+ isActive?: 'true' | 'false';
4131
+ /**
4132
+ * If true this will only return special rules, special rules are the rules that
4133
+ * are used for anti sybil as honey pot
4134
+ */
4135
+ isSpecial?: 'true' | 'false';
4136
+ /**
4137
+ * Maximum number of records to return (max 100)
2549
4138
  */
2550
4139
  limit?: number;
2551
4140
  /**
@@ -2569,6 +4158,12 @@ export interface RuleListParams {
2569
4158
  */
2570
4159
  websiteId?: string;
2571
4160
  }
4161
+ export interface RuleDeleteParams {
4162
+ /**
4163
+ * Whether to debit loyalty points
4164
+ */
4165
+ debitLoyaltyPoints?: string;
4166
+ }
2572
4167
  export interface RuleCompleteParams {
2573
4168
  /**
2574
4169
  * Override amount for the reward (rounded to nearest whole number). This will
@@ -2576,13 +4171,21 @@ export interface RuleCompleteParams {
2576
4171
  */
2577
4172
  amount?: number | null;
2578
4173
  /**
2579
- * Link to the comment made by user
4174
+ * Link to the post/comment made by user
4175
+ */
4176
+ contentUrl?: string;
4177
+ /**
4178
+ * Unique key to ensure idempotent requests.
2580
4179
  */
2581
- commentLink?: string;
4180
+ idempotencyKey?: string;
2582
4181
  /**
2583
4182
  * ID of the choice selected by the user
2584
4183
  */
2585
4184
  loyaltyQuestionChoiceId?: string;
4185
+ /**
4186
+ * Value to compare with the range
4187
+ */
4188
+ rangeValue?: number | null;
2586
4189
  /**
2587
4190
  * Unique identifier for the user
2588
4191
  */
@@ -2593,7 +4196,7 @@ export interface RuleCompleteParams {
2593
4196
  verificationCode?: string;
2594
4197
  /**
2595
4198
  * Flag indicating if only verification is required, this will not create a
2596
- * transaction and reward the user
4199
+ * transaction and reward the user.
2597
4200
  */
2598
4201
  verifyOnly?: string;
2599
4202
  /**
@@ -2602,11 +4205,25 @@ export interface RuleCompleteParams {
2602
4205
  walletAddress?: string;
2603
4206
  }
2604
4207
  export interface RuleGetStatusParams {
2605
- organizationId: string;
2606
- websiteId: string;
4208
+ /**
4209
+ * Number of items to return
4210
+ */
4211
+ limit?: number | null;
4212
+ /**
4213
+ * Unique identifier for the loyalty rule[s]
4214
+ */
4215
+ loyaltyRuleId?: string | Array<string>;
4216
+ organizationId?: string;
4217
+ /**
4218
+ * Starting after item
4219
+ */
4220
+ startingAfter?: string;
4221
+ userGroupId?: string;
2607
4222
  userId?: string;
4223
+ walletAddress?: string;
4224
+ websiteId?: string;
2608
4225
  }
2609
4226
  export declare namespace Rules {
2610
- export { type RuleCreateResponse as RuleCreateResponse, type RuleUpdateResponse as RuleUpdateResponse, type RuleListResponse as RuleListResponse, type RuleDeleteResponse as RuleDeleteResponse, type RuleCompleteResponse as RuleCompleteResponse, type RuleGetStatusResponse as RuleGetStatusResponse, type RuleCreateParams as RuleCreateParams, type RuleUpdateParams as RuleUpdateParams, type RuleListParams as RuleListParams, type RuleCompleteParams as RuleCompleteParams, type RuleGetStatusParams as RuleGetStatusParams, };
4227
+ export { type RuleCreateResponse as RuleCreateResponse, type RuleUpdateResponse as RuleUpdateResponse, type RuleListResponse as RuleListResponse, type RuleDeleteResponse as RuleDeleteResponse, type RuleCompleteResponse as RuleCompleteResponse, type RuleGetStatusResponse as RuleGetStatusResponse, type RuleCreateParams as RuleCreateParams, type RuleUpdateParams as RuleUpdateParams, type RuleListParams as RuleListParams, type RuleDeleteParams as RuleDeleteParams, type RuleCompleteParams as RuleCompleteParams, type RuleGetStatusParams as RuleGetStatusParams, };
2611
4228
  }
2612
4229
  //# sourceMappingURL=rules.d.ts.map