@snagsolutions/sdk 0.1.0-alpha.21 → 0.1.0-alpha.210

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 (273) hide show
  1. package/CHANGELOG.md +1703 -0
  2. package/LICENSE +1 -1
  3. package/README.md +15 -23
  4. package/core.d.ts +19 -5
  5. package/core.d.ts.map +1 -1
  6. package/core.js +24 -17
  7. package/core.js.map +1 -1
  8. package/core.mjs +24 -17
  9. package/core.mjs.map +1 -1
  10. package/index.d.mts +7 -4
  11. package/index.d.ts +7 -4
  12. package/index.d.ts.map +1 -1
  13. package/index.js +8 -4
  14. package/index.js.map +1 -1
  15. package/index.mjs +8 -4
  16. package/index.mjs.map +1 -1
  17. package/package.json +4 -5
  18. package/resource.d.ts +1 -1
  19. package/resource.d.ts.map +1 -1
  20. package/resource.js.map +1 -1
  21. package/resource.mjs.map +1 -1
  22. package/resources/assets.d.ts +16 -2
  23. package/resources/assets.d.ts.map +1 -1
  24. package/resources/assets.js +8 -0
  25. package/resources/assets.js.map +1 -1
  26. package/resources/assets.mjs +8 -0
  27. package/resources/assets.mjs.map +1 -1
  28. package/resources/auctions/auctions.d.ts +368 -0
  29. package/resources/auctions/auctions.d.ts.map +1 -0
  30. package/resources/auctions/auctions.js +72 -0
  31. package/resources/auctions/auctions.js.map +1 -0
  32. package/resources/auctions/auctions.mjs +45 -0
  33. package/resources/auctions/auctions.mjs.map +1 -0
  34. package/resources/auctions/index.d.ts +3 -0
  35. package/resources/auctions/index.d.ts.map +1 -0
  36. package/resources/auctions/index.js +9 -0
  37. package/resources/auctions/index.js.map +1 -0
  38. package/resources/auctions/index.mjs +4 -0
  39. package/resources/auctions/index.mjs.map +1 -0
  40. package/resources/auctions/website-user-attributes/index.d.ts +3 -0
  41. package/resources/auctions/website-user-attributes/index.d.ts.map +1 -0
  42. package/resources/auctions/website-user-attributes/index.js +9 -0
  43. package/resources/auctions/website-user-attributes/index.js.map +1 -0
  44. package/resources/auctions/website-user-attributes/index.mjs +4 -0
  45. package/resources/auctions/website-user-attributes/index.mjs.map +1 -0
  46. package/resources/auctions/website-user-attributes/values.d.ts +126 -0
  47. package/resources/auctions/website-user-attributes/values.d.ts.map +1 -0
  48. package/resources/auctions/website-user-attributes/values.js +49 -0
  49. package/resources/auctions/website-user-attributes/values.js.map +1 -0
  50. package/resources/auctions/website-user-attributes/values.mjs +45 -0
  51. package/resources/auctions/website-user-attributes/values.mjs.map +1 -0
  52. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts +136 -0
  53. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts.map +1 -0
  54. package/resources/auctions/website-user-attributes/website-user-attributes.js +76 -0
  55. package/resources/auctions/website-user-attributes/website-user-attributes.js.map +1 -0
  56. package/resources/auctions/website-user-attributes/website-user-attributes.mjs +49 -0
  57. package/resources/auctions/website-user-attributes/website-user-attributes.mjs.map +1 -0
  58. package/resources/auctions/website-user-attributes.d.ts +2 -0
  59. package/resources/auctions/website-user-attributes.d.ts.map +1 -0
  60. package/resources/auctions/website-user-attributes.js +19 -0
  61. package/resources/auctions/website-user-attributes.js.map +1 -0
  62. package/resources/auctions/website-user-attributes.mjs +3 -0
  63. package/resources/auctions/website-user-attributes.mjs.map +1 -0
  64. package/resources/auctions.d.ts +1 -133
  65. package/resources/auctions.d.ts.map +1 -1
  66. package/resources/auctions.js +15 -22
  67. package/resources/auctions.js.map +1 -1
  68. package/resources/auctions.mjs +1 -20
  69. package/resources/auctions.mjs.map +1 -1
  70. package/resources/auth.d.ts +17 -4
  71. package/resources/auth.d.ts.map +1 -1
  72. package/resources/auth.js.map +1 -1
  73. package/resources/auth.mjs.map +1 -1
  74. package/resources/index.d.ts +2 -2
  75. package/resources/index.d.ts.map +1 -1
  76. package/resources/index.js +1 -1
  77. package/resources/index.js.map +1 -1
  78. package/resources/index.mjs +1 -1
  79. package/resources/index.mjs.map +1 -1
  80. package/resources/loyalty/account-streaks.d.ts +96 -0
  81. package/resources/loyalty/account-streaks.d.ts.map +1 -0
  82. package/resources/loyalty/account-streaks.js +24 -0
  83. package/resources/loyalty/account-streaks.js.map +1 -0
  84. package/resources/loyalty/account-streaks.mjs +20 -0
  85. package/resources/loyalty/account-streaks.mjs.map +1 -0
  86. package/resources/loyalty/accounts.d.ts +60 -16
  87. package/resources/loyalty/accounts.d.ts.map +1 -1
  88. package/resources/loyalty/accounts.js +14 -0
  89. package/resources/loyalty/accounts.js.map +1 -1
  90. package/resources/loyalty/accounts.mjs +14 -0
  91. package/resources/loyalty/accounts.mjs.map +1 -1
  92. package/resources/loyalty/badges.d.ts +666 -135
  93. package/resources/loyalty/badges.d.ts.map +1 -1
  94. package/resources/loyalty/badges.js +19 -1
  95. package/resources/loyalty/badges.js.map +1 -1
  96. package/resources/loyalty/badges.mjs +19 -1
  97. package/resources/loyalty/badges.mjs.map +1 -1
  98. package/resources/loyalty/currencies.d.ts +19 -0
  99. package/resources/loyalty/currencies.d.ts.map +1 -1
  100. package/resources/loyalty/currencies.js +19 -0
  101. package/resources/loyalty/currencies.js.map +1 -1
  102. package/resources/loyalty/currencies.mjs +19 -0
  103. package/resources/loyalty/currencies.mjs.map +1 -1
  104. package/resources/loyalty/index.d.ts +4 -4
  105. package/resources/loyalty/index.d.ts.map +1 -1
  106. package/resources/loyalty/index.js +5 -5
  107. package/resources/loyalty/index.js.map +1 -1
  108. package/resources/loyalty/index.mjs +3 -3
  109. package/resources/loyalty/index.mjs.map +1 -1
  110. package/resources/loyalty/loyalty.d.ts +11 -11
  111. package/resources/loyalty/loyalty.d.ts.map +1 -1
  112. package/resources/loyalty/loyalty.js +6 -6
  113. package/resources/loyalty/loyalty.js.map +1 -1
  114. package/resources/loyalty/loyalty.mjs +7 -7
  115. package/resources/loyalty/loyalty.mjs.map +1 -1
  116. package/resources/loyalty/multipliers.d.ts +39 -2
  117. package/resources/loyalty/multipliers.d.ts.map +1 -1
  118. package/resources/loyalty/multipliers.js +23 -0
  119. package/resources/loyalty/multipliers.js.map +1 -1
  120. package/resources/loyalty/multipliers.mjs +23 -0
  121. package/resources/loyalty/multipliers.mjs.map +1 -1
  122. package/resources/loyalty/questions-responses.d.ts +55 -4
  123. package/resources/loyalty/questions-responses.d.ts.map +1 -1
  124. package/resources/loyalty/questions-responses.js +9 -0
  125. package/resources/loyalty/questions-responses.js.map +1 -1
  126. package/resources/loyalty/questions-responses.mjs +9 -0
  127. package/resources/loyalty/questions-responses.mjs.map +1 -1
  128. package/resources/loyalty/questions.d.ts +60 -6
  129. package/resources/loyalty/questions.d.ts.map +1 -1
  130. package/resources/loyalty/questions.js +39 -0
  131. package/resources/loyalty/questions.js.map +1 -1
  132. package/resources/loyalty/questions.mjs +39 -0
  133. package/resources/loyalty/questions.mjs.map +1 -1
  134. package/resources/loyalty/rule-edits.d.ts +2714 -8
  135. package/resources/loyalty/rule-edits.d.ts.map +1 -1
  136. package/resources/loyalty/rule-edits.js +14 -0
  137. package/resources/loyalty/rule-edits.js.map +1 -1
  138. package/resources/loyalty/rule-edits.mjs +14 -0
  139. package/resources/loyalty/rule-edits.mjs.map +1 -1
  140. package/resources/loyalty/rule-groups.d.ts +300 -64
  141. package/resources/loyalty/rule-groups.d.ts.map +1 -1
  142. package/resources/loyalty/rule-groups.js +38 -2
  143. package/resources/loyalty/rule-groups.js.map +1 -1
  144. package/resources/loyalty/rule-groups.mjs +38 -2
  145. package/resources/loyalty/rule-groups.mjs.map +1 -1
  146. package/resources/loyalty/rules.d.ts +2036 -290
  147. package/resources/loyalty/rules.d.ts.map +1 -1
  148. package/resources/loyalty/rules.js +40 -9
  149. package/resources/loyalty/rules.js.map +1 -1
  150. package/resources/loyalty/rules.mjs +40 -9
  151. package/resources/loyalty/rules.mjs.map +1 -1
  152. package/resources/loyalty/transactions/index.d.ts +3 -0
  153. package/resources/loyalty/transactions/index.d.ts.map +1 -0
  154. package/resources/loyalty/transactions/index.js +9 -0
  155. package/resources/loyalty/transactions/index.js.map +1 -0
  156. package/resources/loyalty/transactions/index.mjs +4 -0
  157. package/resources/loyalty/transactions/index.mjs.map +1 -0
  158. package/resources/loyalty/transactions/rule-statuses.d.ts +120 -0
  159. package/resources/loyalty/transactions/rule-statuses.d.ts.map +1 -0
  160. package/resources/loyalty/transactions/rule-statuses.js +30 -0
  161. package/resources/loyalty/transactions/rule-statuses.js.map +1 -0
  162. package/resources/loyalty/transactions/rule-statuses.mjs +26 -0
  163. package/resources/loyalty/transactions/rule-statuses.mjs.map +1 -0
  164. package/resources/loyalty/transactions/transactions.d.ts +410 -0
  165. package/resources/loyalty/transactions/transactions.d.ts.map +1 -0
  166. package/resources/loyalty/transactions/transactions.js +76 -0
  167. package/resources/loyalty/transactions/transactions.js.map +1 -0
  168. package/resources/loyalty/transactions/transactions.mjs +49 -0
  169. package/resources/loyalty/transactions/transactions.mjs.map +1 -0
  170. package/resources/loyalty/transactions.d.ts +1 -248
  171. package/resources/loyalty/transactions.d.ts.map +1 -1
  172. package/resources/loyalty/transactions.js +15 -18
  173. package/resources/loyalty/transactions.js.map +1 -1
  174. package/resources/loyalty/transactions.mjs +1 -16
  175. package/resources/loyalty/transactions.mjs.map +1 -1
  176. package/resources/minting.d.ts +5 -5
  177. package/resources/minting.d.ts.map +1 -1
  178. package/resources/referral/referral.d.ts +12 -3
  179. package/resources/referral/referral.d.ts.map +1 -1
  180. package/resources/referral/referral.js +11 -5
  181. package/resources/referral/referral.js.map +1 -1
  182. package/resources/referral/referral.mjs +11 -5
  183. package/resources/referral/referral.mjs.map +1 -1
  184. package/resources/referral/users.d.ts +30 -3
  185. package/resources/referral/users.d.ts.map +1 -1
  186. package/resources/referral/users.js +12 -4
  187. package/resources/referral/users.js.map +1 -1
  188. package/resources/referral/users.mjs +12 -4
  189. package/resources/referral/users.mjs.map +1 -1
  190. package/resources/users/index.d.ts +1 -1
  191. package/resources/users/index.d.ts.map +1 -1
  192. package/resources/users/index.js.map +1 -1
  193. package/resources/users/index.mjs.map +1 -1
  194. package/resources/users/metadatas.d.ts +36 -3
  195. package/resources/users/metadatas.d.ts.map +1 -1
  196. package/resources/users/metadatas.js.map +1 -1
  197. package/resources/users/metadatas.mjs.map +1 -1
  198. package/resources/users/users.d.ts +192 -35
  199. package/resources/users/users.d.ts.map +1 -1
  200. package/resources/users/users.js +58 -1
  201. package/resources/users/users.js.map +1 -1
  202. package/resources/users/users.mjs +58 -1
  203. package/resources/users/users.mjs.map +1 -1
  204. package/resources/websites/website-collections.d.ts +22 -1
  205. package/resources/websites/website-collections.d.ts.map +1 -1
  206. package/resources/websites/website-collections.js +21 -0
  207. package/resources/websites/website-collections.js.map +1 -1
  208. package/resources/websites/website-collections.mjs +21 -0
  209. package/resources/websites/website-collections.mjs.map +1 -1
  210. package/resources/websites/website-user-roles.d.ts +24 -1
  211. package/resources/websites/website-user-roles.d.ts.map +1 -1
  212. package/resources/websites/website-user-roles.js +23 -0
  213. package/resources/websites/website-user-roles.js.map +1 -1
  214. package/resources/websites/website-user-roles.mjs +23 -0
  215. package/resources/websites/website-user-roles.mjs.map +1 -1
  216. package/resources/websites/websites.d.ts +12 -0
  217. package/resources/websites/websites.d.ts.map +1 -1
  218. package/resources/websites/websites.js +7 -0
  219. package/resources/websites/websites.js.map +1 -1
  220. package/resources/websites/websites.mjs +7 -0
  221. package/resources/websites/websites.mjs.map +1 -1
  222. package/src/core.ts +39 -16
  223. package/src/index.ts +31 -2
  224. package/src/resource.ts +1 -1
  225. package/src/resources/assets.ts +18 -3
  226. package/src/resources/auctions/auctions.ts +561 -0
  227. package/src/resources/auctions/index.ts +19 -0
  228. package/src/resources/auctions/website-user-attributes/index.ts +18 -0
  229. package/src/resources/auctions/website-user-attributes/values.ts +170 -0
  230. package/src/resources/auctions/website-user-attributes/website-user-attributes.ts +212 -0
  231. package/src/resources/auctions/website-user-attributes.ts +3 -0
  232. package/src/resources/auctions.ts +1 -207
  233. package/src/resources/auth.ts +21 -5
  234. package/src/resources/index.ts +12 -1
  235. package/src/resources/loyalty/account-streaks.ts +128 -0
  236. package/src/resources/loyalty/accounts.ts +65 -18
  237. package/src/resources/loyalty/badges.ts +790 -146
  238. package/src/resources/loyalty/currencies.ts +19 -0
  239. package/src/resources/loyalty/index.ts +19 -3
  240. package/src/resources/loyalty/loyalty.ts +39 -15
  241. package/src/resources/loyalty/multipliers.ts +43 -4
  242. package/src/resources/loyalty/questions-responses.ts +64 -4
  243. package/src/resources/loyalty/questions.ts +64 -6
  244. package/src/resources/loyalty/rule-edits.ts +3942 -100
  245. package/src/resources/loyalty/rule-groups.ts +527 -76
  246. package/src/resources/loyalty/rules.ts +3143 -301
  247. package/src/resources/loyalty/transactions/index.ts +18 -0
  248. package/src/resources/loyalty/transactions/rule-statuses.ts +178 -0
  249. package/src/resources/loyalty/transactions/transactions.ts +699 -0
  250. package/src/resources/loyalty/transactions.ts +1 -440
  251. package/src/resources/minting.ts +25 -5
  252. package/src/resources/referral/referral.ts +15 -11
  253. package/src/resources/referral/users.ts +45 -5
  254. package/src/resources/users/index.ts +4 -0
  255. package/src/resources/users/metadatas.ts +61 -3
  256. package/src/resources/users/users.ts +259 -38
  257. package/src/resources/websites/website-collections.ts +42 -1
  258. package/src/resources/websites/website-user-roles.ts +25 -1
  259. package/src/resources/websites/websites.ts +12 -0
  260. package/src/version.ts +1 -1
  261. package/version.d.ts +1 -1
  262. package/version.d.ts.map +1 -1
  263. package/version.js +1 -1
  264. package/version.js.map +1 -1
  265. package/version.mjs +1 -1
  266. package/version.mjs.map +1 -1
  267. package/resources/loyalty/rule-chains.d.ts +0 -34
  268. package/resources/loyalty/rule-chains.d.ts.map +0 -1
  269. package/resources/loyalty/rule-chains.js +0 -15
  270. package/resources/loyalty/rule-chains.js.map +0 -1
  271. package/resources/loyalty/rule-chains.mjs +0 -11
  272. package/resources/loyalty/rule-chains.mjs.map +0 -1
  273. package/src/resources/loyalty/rule-chains.ts +0 -45
@@ -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, discord_role_grant
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_github' | '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' | 'stratus_function' | 'connected_tiktok' | 'tiktok_follow' | 'github_repo_star' | 'github_repo_fork' | 'github_repo_collaborator' | 'github_merge_PR' | 'discord_role_grant' | 'connected_reddit' | 'reddit_comment';
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,15 @@ 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;
176
+ /**
177
+ * Optional stratus function id for the rule
178
+ */
179
+ functionId?: string | null;
109
180
  /**
110
181
  * Whether to hide this rule in the user interface
111
182
  */
@@ -113,15 +184,33 @@ export interface RuleCreateResponse {
113
184
  /**
114
185
  * Interval between rule executions
115
186
  */
116
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
187
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
117
188
  /**
118
189
  * Whether this rule is mandatory
119
190
  */
120
191
  isRequired?: boolean;
192
+ /**
193
+ * Unique identifier for the loyalty badge
194
+ */
195
+ loyaltyBadgeId?: string | null;
121
196
  /**
122
197
  * Unique identifier for the loyalty rule group
123
198
  */
124
199
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
200
+ /**
201
+ * URL for uploading loyalty user allotment via CSV
202
+ */
203
+ loyaltyUserAllotmentCsvUrl?: string;
204
+ /**
205
+ * The interval for the max amount. Available for the smart contract and external
206
+ * rules.
207
+ */
208
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
209
+ /**
210
+ * The maximum amount of points a user can earn per interval. Available for the
211
+ * smart contract and external rules.
212
+ */
213
+ maxAmountPerInterval?: number | null;
125
214
  /**
126
215
  * URL of the media to be displayed
127
216
  */
@@ -129,25 +218,46 @@ export interface RuleCreateResponse {
129
218
  /**
130
219
  * Blockchain network where the rule will apply
131
220
  */
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';
221
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
133
222
  /**
134
223
  * OAuth credentials associated with the rule
135
224
  */
136
225
  oauthCredentialsId?: string | null;
226
+ /**
227
+ * The lifetime of the reward
228
+ */
229
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
137
230
  /**
138
231
  * Type of reward issued by the rule
139
232
  */
140
- rewardType?: 'points' | 'multiplier';
233
+ rewardType?: 'points' | 'multiplier' | 'badge';
141
234
  /**
142
- * Identifier for associated subscriptions
235
+ * URL of the Shopify store
143
236
  */
144
- subscriptionIdentifier?: string | null;
237
+ shopifyStoreUrl?: string | null;
238
+ /**
239
+ * Whether to show this rule before the start time
240
+ */
241
+ showBeforeStart?: boolean;
242
+ /**
243
+ * Optional stratus subscription id for the rule
244
+ */
245
+ subscriptionId?: string | null;
145
246
  }
146
247
  export declare namespace RuleCreateResponse {
147
248
  /**
148
249
  * Additional metadata for the loyalty rule
149
250
  */
150
251
  interface Metadata {
252
+ /**
253
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
254
+ * any rule completions count as check-in.
255
+ */
256
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
257
+ /**
258
+ * Number of tokens per batch.
259
+ */
260
+ batchSize?: number | null;
151
261
  /**
152
262
  * Text displayed on the action button.
153
263
  */
@@ -167,7 +277,7 @@ export declare namespace RuleCreateResponse {
167
277
  /**
168
278
  * Text to check in the Twitter post, username, or bio.
169
279
  */
170
- checkText?: string | null;
280
+ checkText?: string | Array<string> | null;
171
281
  /**
172
282
  * Array of collections associated with the rule.
173
283
  */
@@ -175,7 +285,13 @@ export declare namespace RuleCreateResponse {
175
285
  /**
176
286
  * Conditions for completing the profile.
177
287
  */
178
- completeProfileConditions?: Record<string, boolean> | null;
288
+ completeProfileConditions?: {
289
+ [key: string]: boolean;
290
+ } | null;
291
+ /**
292
+ * Description of the external rule condition (only for external rules)
293
+ */
294
+ conditionDescription?: string;
179
295
  /**
180
296
  * Object containing details for the call-to-action.
181
297
  */
@@ -184,6 +300,10 @@ export declare namespace RuleCreateResponse {
184
300
  * API key for custom rewards integration.
185
301
  */
186
302
  customRewardsApiKey?: string;
303
+ /**
304
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
305
+ */
306
+ directRpc?: boolean;
187
307
  /**
188
308
  * Array of Discord servers, channels, and roles to join.
189
309
  */
@@ -204,6 +324,10 @@ export declare namespace RuleCreateResponse {
204
324
  * Flag indicating whether the verified multiplier is enabled.
205
325
  */
206
326
  enableVerifiedMultiplier?: boolean;
327
+ /**
328
+ * Type of ERC20 token for the loyalty rule.
329
+ */
330
+ erc20Type?: 'erc20' | 'native';
207
331
  /**
208
332
  * Fill source of the order for the token sale
209
333
  */
@@ -212,6 +336,14 @@ export declare namespace RuleCreateResponse {
212
336
  * Percentage reward given to a user for their first referral.
213
337
  */
214
338
  firstReferralReward?: number | null;
339
+ /**
340
+ * Name of the GitHub branch to check for PR merge.
341
+ */
342
+ githubBranchName?: string | null;
343
+ /**
344
+ * URL of the GitHub repository to check for star.
345
+ */
346
+ githubRepoUrl?: string | null;
215
347
  /**
216
348
  * Flag indicating whether the fill source is included.
217
349
  */
@@ -220,10 +352,6 @@ export declare namespace RuleCreateResponse {
220
352
  * Indicates if the item has never been sold.
221
353
  */
222
354
  hasNeverSold?: boolean;
223
- /**
224
- * Flag indicating whether the order source is included.
225
- */
226
- hasOrderSource?: boolean;
227
355
  /**
228
356
  * Indicates if the full royalty has been paid for items.
229
357
  */
@@ -240,10 +368,18 @@ export declare namespace RuleCreateResponse {
240
368
  * URL of the image associated with the rule.
241
369
  */
242
370
  imageUrl?: string | null;
371
+ /**
372
+ * If enabled, the first transaction done on the platform will complete this rule
373
+ */
374
+ isCheckInOnEveryTxn?: boolean;
243
375
  /**
244
376
  * Indicates if the multiplier has been applied to rewards.
245
377
  */
246
378
  isMultiplierApplied?: boolean;
379
+ /**
380
+ * Flag indicating if the rule is restricted to new users.
381
+ */
382
+ isRestrictedToNewUsers?: boolean;
247
383
  /**
248
384
  * Flag indicating if rewards are applied retroactively.
249
385
  */
@@ -256,6 +392,10 @@ export declare namespace RuleCreateResponse {
256
392
  * Optional link associated with the metadata.
257
393
  */
258
394
  link?: string | null;
395
+ /**
396
+ * Liquidity pool details.
397
+ */
398
+ liquidity?: Metadata.Liquidity;
259
399
  /**
260
400
  * Maximum quantity constraint for token holding.
261
401
  */
@@ -288,18 +428,30 @@ export declare namespace RuleCreateResponse {
288
428
  * give points for only one token ownership per contract
289
429
  */
290
430
  onlyRewardSingleTokenOwnership?: boolean | null;
291
- /**
292
- * Order source of the order for the token sale
293
- */
294
- orderSource?: string;
295
431
  /**
296
432
  * Promotional code associated with the rule.
297
433
  */
298
434
  promoCode?: string;
435
+ /**
436
+ * URL of the CSV file containing promo codes.
437
+ */
438
+ promoCodeCsvUrl?: string;
439
+ /**
440
+ * Numbers of the promotional code to be generated.
441
+ */
442
+ promoCodeLength?: number | null;
443
+ /**
444
+ * Type of the promotional code.
445
+ */
446
+ promoCodeType?: 'code' | 'csv' | 'generate';
299
447
  /**
300
448
  * Array defining ranges and corresponding rewards.
301
449
  */
302
450
  range?: Array<Metadata.Range>;
451
+ /**
452
+ * ID of the Reddit post.
453
+ */
454
+ redditPostId?: string | null;
303
455
  /**
304
456
  * Object defining referral requirements.
305
457
  */
@@ -308,10 +460,55 @@ export declare namespace RuleCreateResponse {
308
460
  * Lump sum reward given to a referrer.
309
461
  */
310
462
  referrerReward?: number | null;
463
+ /**
464
+ * Loyalty currency ID of the referrer reward.
465
+ */
466
+ referrerRewardLoyaltyCurrencyId?: string | null;
467
+ /**
468
+ * Flag indicating if the post link is required.
469
+ */
470
+ requirePostLink?: boolean | null;
471
+ /**
472
+ * Flag indicating if media metadata is required.
473
+ */
474
+ requirePostMediaLink?: boolean | null;
475
+ /**
476
+ * Flag indicating if the rule can also reward badges per range.
477
+ */
478
+ rewardBadgePerRange?: boolean;
479
+ /**
480
+ * Flag indicating if the reward is rewarded by batch.
481
+ */
482
+ rewardByBatch?: boolean | null;
483
+ /**
484
+ * Criteria to evaluate the reward.
485
+ */
486
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
487
+ /**
488
+ * Flag indicating if the reward is rewarded per action.
489
+ */
490
+ rewardPerAction?: boolean | null;
311
491
  /**
312
492
  * Flag indicating if rewards are given per impression.
313
493
  */
314
494
  rewardPerImpression?: boolean | null;
495
+ /**
496
+ * Flag indicating if the rule should reward based on value of traded tokens
497
+ * instead of count.
498
+ */
499
+ rewardPerValue?: boolean;
500
+ /**
501
+ * Flag indicating if the rule should reward quality posts.
502
+ */
503
+ rewardQualityPosts?: boolean;
504
+ /**
505
+ * Wallet address of the user can only be used if userId is not provided
506
+ */
507
+ royaltyAddress?: string;
508
+ /**
509
+ * Royalty percentage of the item.
510
+ */
511
+ royaltyPercentage?: number;
315
512
  /**
316
513
  * Currency associated with sales.
317
514
  */
@@ -335,7 +532,7 @@ export declare namespace RuleCreateResponse {
335
532
  /**
336
533
  * Social media platform associated with the rule.
337
534
  */
338
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
535
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
339
536
  /**
340
537
  * URL of the social platform's logo.
341
538
  */
@@ -344,10 +541,18 @@ export declare namespace RuleCreateResponse {
344
541
  * Name of the social platform.
345
542
  */
346
543
  socialPlatformName?: string | null;
544
+ /**
545
+ * ID of the Steam app.
546
+ */
547
+ steamAppId?: string | null;
347
548
  /**
348
549
  * Array of streak milestones and corresponding rewards.
349
550
  */
350
551
  streakArray?: Array<Metadata.StreakArray> | null;
552
+ /**
553
+ * Metadata for swap loyalty rules
554
+ */
555
+ swap?: Metadata.Swap;
351
556
  /**
352
557
  * ID of the Telegram channel.
353
558
  */
@@ -360,6 +565,11 @@ export declare namespace RuleCreateResponse {
360
565
  * Flag indicating if all contracts are tracked.
361
566
  */
362
567
  trackAllContracts?: boolean | null;
568
+ /**
569
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
570
+ * completed once the progress is 100%.
571
+ */
572
+ trackProgress?: boolean | null;
363
573
  /**
364
574
  * URL of the associated Twitter account.
365
575
  */
@@ -395,7 +605,15 @@ export declare namespace RuleCreateResponse {
395
605
  /**
396
606
  * Type of wallet associated with the rule.
397
607
  */
398
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
608
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
609
+ /**
610
+ * ID of the Youtube channel.
611
+ */
612
+ youtubeChannelId?: string | null;
613
+ /**
614
+ * ID of the Youtube video.
615
+ */
616
+ youtubeVideoId?: string | null;
399
617
  }
400
618
  namespace Metadata {
401
619
  interface Collection {
@@ -410,7 +628,7 @@ export declare namespace RuleCreateResponse {
410
628
  /**
411
629
  * Blockchain network of the collection.
412
630
  */
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';
631
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
414
632
  }
415
633
  /**
416
634
  * Object containing details for the call-to-action.
@@ -475,6 +693,49 @@ export declare namespace RuleCreateResponse {
475
693
  */
476
694
  id: string;
477
695
  }
696
+ /**
697
+ * Liquidity pool details.
698
+ */
699
+ interface Liquidity {
700
+ /**
701
+ * Calculation type of the liquidity pool.
702
+ */
703
+ calculationType?: 'fixed' | 'custom';
704
+ /**
705
+ * Custom function to calculate the the reward amount based on the liquidity
706
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
707
+ * USD.
708
+ */
709
+ customFunction?: string;
710
+ /**
711
+ * Liquidity provided per day in USD
712
+ */
713
+ liquidityPerDay?: number;
714
+ /**
715
+ * Blockchain network of the liquidity pool.
716
+ */
717
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
718
+ /**
719
+ * Indicates if only in-range liquidity is rewarded.
720
+ */
721
+ onlyRewardInRangeLiquidity?: boolean;
722
+ /**
723
+ * Array of liquidity pools associated with the rule.
724
+ */
725
+ pools?: Array<Liquidity.Pool>;
726
+ /**
727
+ * Protocol of the liquidity pool.
728
+ */
729
+ protocol?: string;
730
+ }
731
+ namespace Liquidity {
732
+ interface Pool {
733
+ /**
734
+ * Unique identifier of the liquidity pool.
735
+ */
736
+ id: string;
737
+ }
738
+ }
478
739
  interface Range {
479
740
  /**
480
741
  * Reward amount for this range.
@@ -488,6 +749,14 @@ export declare namespace RuleCreateResponse {
488
749
  * Start value of the range.
489
750
  */
490
751
  startRange: number;
752
+ /**
753
+ * ID of the loyalty badge for this range.
754
+ */
755
+ loyaltyBadgeId?: string;
756
+ /**
757
+ * Amount of the loyalty multiplier for this range.
758
+ */
759
+ loyaltyMultiplierAmount?: number;
491
760
  }
492
761
  /**
493
762
  * Object defining referral requirements.
@@ -531,18 +800,14 @@ export declare namespace RuleCreateResponse {
531
800
  * Object containing details of the associated smart contract.
532
801
  */
533
802
  interface SmartContract {
534
- /**
535
- * ABI of the smart contract.
536
- */
537
- abi?: string | null;
538
803
  /**
539
804
  * Mapping of addresses for the smart contract.
540
805
  */
541
806
  addressMapping?: string | null;
542
807
  /**
543
- * Array of bonus details applied to the rule.
808
+ * Object containing details of the amount multiplier from the event.
544
809
  */
545
- bonus?: Array<SmartContract.Bonus> | null;
810
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
546
811
  /**
547
812
  * ID of the smart contract.
548
813
  */
@@ -551,58 +816,28 @@ export declare namespace RuleCreateResponse {
551
816
  * Criteria to evaluate the smart contract event.
552
817
  */
553
818
  criteria?: 'everyEvent' | 'byParameter' | null;
554
- /**
555
- * Time range applied to the rule.
556
- */
557
- customRange?: SmartContract.CustomRange | null;
558
819
  /**
559
820
  * Event emitted by the smart contract.
560
821
  */
561
822
  event?: string | null;
562
- /**
563
- * Maximum value allowed for the parameter.
564
- */
565
- max?: number | null;
566
823
  /**
567
824
  * Array of parameters for the smart contract.
568
825
  */
569
826
  params?: Array<SmartContract.Param> | null;
570
827
  /**
571
- * Flag indicating if a bonus is applied.
572
- */
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.
828
+ * Type of the smart contract interaction.
580
829
  */
581
- withMax?: boolean | null;
830
+ type?: 'function' | 'event' | null;
582
831
  }
583
832
  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
833
  /**
595
- * Time range applied to the rule.
834
+ * Object containing details of the amount multiplier from the event.
596
835
  */
597
- interface CustomRange {
598
- /**
599
- * End time of the custom range.
600
- */
601
- endsAt?: string | null;
836
+ interface AmountMultiplier {
602
837
  /**
603
- * Start time of the custom range.
838
+ * Mapping of the value for the smart contract.
604
839
  */
605
- startsAt?: string | null;
840
+ valueMapping?: string | null;
606
841
  }
607
842
  interface Param {
608
843
  /**
@@ -639,6 +874,24 @@ export declare namespace RuleCreateResponse {
639
874
  */
640
875
  streakMilestone: number;
641
876
  }
877
+ /**
878
+ * Metadata for swap loyalty rules
879
+ */
880
+ interface Swap {
881
+ provider?: 'any' | 'relay' | 'lifi';
882
+ relayReferrerId?: string;
883
+ requireCrossChainSwap?: boolean;
884
+ swappedToChain?: 'any' | number | string;
885
+ swappedToTokens?: Array<Swap.SwappedToToken>;
886
+ tokenMode?: 'any' | 'specific';
887
+ trackTokenAmount?: boolean;
888
+ }
889
+ namespace Swap {
890
+ interface SwappedToToken {
891
+ address: string;
892
+ chainId: string;
893
+ }
894
+ }
642
895
  }
643
896
  interface Collection {
644
897
  /**
@@ -648,7 +901,11 @@ export declare namespace RuleCreateResponse {
648
901
  /**
649
902
  * Blockchain network for the collection
650
903
  */
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';
904
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
905
+ /**
906
+ * Symbol of the collection.
907
+ */
908
+ symbol?: string;
652
909
  }
653
910
  }
654
911
  export interface RuleUpdateResponse {
@@ -665,10 +922,14 @@ export interface RuleUpdateResponse {
665
922
  * Name of the loyalty rule
666
923
  */
667
924
  name: string;
925
+ /**
926
+ * The type of claim for the reward
927
+ */
928
+ claimType?: 'manual' | 'auto' | null;
668
929
  /**
669
930
  * Blockchain address of the associated collection
670
931
  */
671
- collectionAddress?: string;
932
+ collectionAddress?: string | null;
672
933
  /**
673
934
  * List of associated collections
674
935
  */
@@ -693,10 +954,18 @@ export interface RuleUpdateResponse {
693
954
  * Effective start time of the rule
694
955
  */
695
956
  effectiveStartTime?: string | null;
957
+ /**
958
+ * ID of the external integration
959
+ */
960
+ externalIntegrationId?: string | null;
696
961
  /**
697
962
  * Frequency of the rule execution
698
963
  */
699
964
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
965
+ /**
966
+ * Optional stratus function id for the rule
967
+ */
968
+ functionId?: string | null;
700
969
  /**
701
970
  * Whether to hide this rule in the user interface
702
971
  */
@@ -704,7 +973,7 @@ export interface RuleUpdateResponse {
704
973
  /**
705
974
  * Time interval for recurring rule execution
706
975
  */
707
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
976
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
708
977
  /**
709
978
  * Whether this rule is required for participation
710
979
  */
@@ -713,6 +982,16 @@ export interface RuleUpdateResponse {
713
982
  * ID of the rule group section to associate with the rule
714
983
  */
715
984
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
985
+ /**
986
+ * The interval for the max amount. Available for the smart contract and external
987
+ * rules.
988
+ */
989
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
990
+ /**
991
+ * The maximum amount of points a user can earn per interval. Available for the
992
+ * smart contract and external rules.
993
+ */
994
+ maxAmountPerInterval?: number | null;
716
995
  /**
717
996
  * URL of the media to be displayed
718
997
  */
@@ -724,23 +1003,35 @@ export interface RuleUpdateResponse {
724
1003
  /**
725
1004
  * Blockchain network where the rule will apply
726
1005
  */
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';
1006
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
728
1007
  /**
729
1008
  * ID for associated OAuth credentials
730
1009
  */
731
1010
  oauthCredentialsId?: string | null;
1011
+ /**
1012
+ * The lifetime of the reward
1013
+ */
1014
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
732
1015
  /**
733
1016
  * Type of reward issued by this rule
734
1017
  */
735
- rewardType?: 'points' | 'multiplier';
1018
+ rewardType?: 'points' | 'multiplier' | 'badge';
1019
+ /**
1020
+ * URL of the Shopify store
1021
+ */
1022
+ shopifyStoreUrl?: string | null;
1023
+ /**
1024
+ * Whether to show this rule before the start time
1025
+ */
1026
+ showBeforeStart?: boolean;
736
1027
  /**
737
1028
  * Start time for the loyalty rule
738
1029
  */
739
1030
  startTime?: string | null;
740
1031
  /**
741
- * Optional subscription identifier for the rule
1032
+ * Optional stratus subscription id for the rule
742
1033
  */
743
- subscriptionIdentifier?: string | null;
1034
+ subscriptionId?: string | null;
744
1035
  }
745
1036
  export declare namespace RuleUpdateResponse {
746
1037
  interface Collection {
@@ -751,12 +1042,25 @@ export declare namespace RuleUpdateResponse {
751
1042
  /**
752
1043
  * Blockchain network for the collection
753
1044
  */
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';
1045
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
1046
+ /**
1047
+ * Symbol of the collection.
1048
+ */
1049
+ symbol?: string;
755
1050
  }
756
1051
  /**
757
1052
  * Additional metadata for the loyalty rule
758
1053
  */
759
1054
  interface Metadata {
1055
+ /**
1056
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
1057
+ * any rule completions count as check-in.
1058
+ */
1059
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
1060
+ /**
1061
+ * Number of tokens per batch.
1062
+ */
1063
+ batchSize?: number | null;
760
1064
  /**
761
1065
  * Text displayed on the action button.
762
1066
  */
@@ -776,7 +1080,7 @@ export declare namespace RuleUpdateResponse {
776
1080
  /**
777
1081
  * Text to check in the Twitter post, username, or bio.
778
1082
  */
779
- checkText?: string | null;
1083
+ checkText?: string | Array<string> | null;
780
1084
  /**
781
1085
  * Array of collections associated with the rule.
782
1086
  */
@@ -784,7 +1088,13 @@ export declare namespace RuleUpdateResponse {
784
1088
  /**
785
1089
  * Conditions for completing the profile.
786
1090
  */
787
- completeProfileConditions?: Record<string, boolean> | null;
1091
+ completeProfileConditions?: {
1092
+ [key: string]: boolean;
1093
+ } | null;
1094
+ /**
1095
+ * Description of the external rule condition (only for external rules)
1096
+ */
1097
+ conditionDescription?: string;
788
1098
  /**
789
1099
  * Object containing details for the call-to-action.
790
1100
  */
@@ -793,6 +1103,10 @@ export declare namespace RuleUpdateResponse {
793
1103
  * API key for custom rewards integration.
794
1104
  */
795
1105
  customRewardsApiKey?: string;
1106
+ /**
1107
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1108
+ */
1109
+ directRpc?: boolean;
796
1110
  /**
797
1111
  * Array of Discord servers, channels, and roles to join.
798
1112
  */
@@ -813,6 +1127,10 @@ export declare namespace RuleUpdateResponse {
813
1127
  * Flag indicating whether the verified multiplier is enabled.
814
1128
  */
815
1129
  enableVerifiedMultiplier?: boolean;
1130
+ /**
1131
+ * Type of ERC20 token for the loyalty rule.
1132
+ */
1133
+ erc20Type?: 'erc20' | 'native';
816
1134
  /**
817
1135
  * Fill source of the order for the token sale
818
1136
  */
@@ -821,6 +1139,14 @@ export declare namespace RuleUpdateResponse {
821
1139
  * Percentage reward given to a user for their first referral.
822
1140
  */
823
1141
  firstReferralReward?: number | null;
1142
+ /**
1143
+ * Name of the GitHub branch to check for PR merge.
1144
+ */
1145
+ githubBranchName?: string | null;
1146
+ /**
1147
+ * URL of the GitHub repository to check for star.
1148
+ */
1149
+ githubRepoUrl?: string | null;
824
1150
  /**
825
1151
  * Flag indicating whether the fill source is included.
826
1152
  */
@@ -829,10 +1155,6 @@ export declare namespace RuleUpdateResponse {
829
1155
  * Indicates if the item has never been sold.
830
1156
  */
831
1157
  hasNeverSold?: boolean;
832
- /**
833
- * Flag indicating whether the order source is included.
834
- */
835
- hasOrderSource?: boolean;
836
1158
  /**
837
1159
  * Indicates if the full royalty has been paid for items.
838
1160
  */
@@ -849,10 +1171,18 @@ export declare namespace RuleUpdateResponse {
849
1171
  * URL of the image associated with the rule.
850
1172
  */
851
1173
  imageUrl?: string | null;
1174
+ /**
1175
+ * If enabled, the first transaction done on the platform will complete this rule
1176
+ */
1177
+ isCheckInOnEveryTxn?: boolean;
852
1178
  /**
853
1179
  * Indicates if the multiplier has been applied to rewards.
854
1180
  */
855
1181
  isMultiplierApplied?: boolean;
1182
+ /**
1183
+ * Flag indicating if the rule is restricted to new users.
1184
+ */
1185
+ isRestrictedToNewUsers?: boolean;
856
1186
  /**
857
1187
  * Flag indicating if rewards are applied retroactively.
858
1188
  */
@@ -865,6 +1195,10 @@ export declare namespace RuleUpdateResponse {
865
1195
  * Optional link associated with the metadata.
866
1196
  */
867
1197
  link?: string | null;
1198
+ /**
1199
+ * Liquidity pool details.
1200
+ */
1201
+ liquidity?: Metadata.Liquidity;
868
1202
  /**
869
1203
  * Maximum quantity constraint for token holding.
870
1204
  */
@@ -897,18 +1231,30 @@ export declare namespace RuleUpdateResponse {
897
1231
  * give points for only one token ownership per contract
898
1232
  */
899
1233
  onlyRewardSingleTokenOwnership?: boolean | null;
900
- /**
901
- * Order source of the order for the token sale
902
- */
903
- orderSource?: string;
904
1234
  /**
905
1235
  * Promotional code associated with the rule.
906
1236
  */
907
1237
  promoCode?: string;
1238
+ /**
1239
+ * URL of the CSV file containing promo codes.
1240
+ */
1241
+ promoCodeCsvUrl?: string;
1242
+ /**
1243
+ * Numbers of the promotional code to be generated.
1244
+ */
1245
+ promoCodeLength?: number | null;
1246
+ /**
1247
+ * Type of the promotional code.
1248
+ */
1249
+ promoCodeType?: 'code' | 'csv' | 'generate';
908
1250
  /**
909
1251
  * Array defining ranges and corresponding rewards.
910
1252
  */
911
1253
  range?: Array<Metadata.Range>;
1254
+ /**
1255
+ * ID of the Reddit post.
1256
+ */
1257
+ redditPostId?: string | null;
912
1258
  /**
913
1259
  * Object defining referral requirements.
914
1260
  */
@@ -917,10 +1263,55 @@ export declare namespace RuleUpdateResponse {
917
1263
  * Lump sum reward given to a referrer.
918
1264
  */
919
1265
  referrerReward?: number | null;
1266
+ /**
1267
+ * Loyalty currency ID of the referrer reward.
1268
+ */
1269
+ referrerRewardLoyaltyCurrencyId?: string | null;
1270
+ /**
1271
+ * Flag indicating if the post link is required.
1272
+ */
1273
+ requirePostLink?: boolean | null;
1274
+ /**
1275
+ * Flag indicating if media metadata is required.
1276
+ */
1277
+ requirePostMediaLink?: boolean | null;
1278
+ /**
1279
+ * Flag indicating if the rule can also reward badges per range.
1280
+ */
1281
+ rewardBadgePerRange?: boolean;
1282
+ /**
1283
+ * Flag indicating if the reward is rewarded by batch.
1284
+ */
1285
+ rewardByBatch?: boolean | null;
1286
+ /**
1287
+ * Criteria to evaluate the reward.
1288
+ */
1289
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
1290
+ /**
1291
+ * Flag indicating if the reward is rewarded per action.
1292
+ */
1293
+ rewardPerAction?: boolean | null;
920
1294
  /**
921
1295
  * Flag indicating if rewards are given per impression.
922
1296
  */
923
1297
  rewardPerImpression?: boolean | null;
1298
+ /**
1299
+ * Flag indicating if the rule should reward based on value of traded tokens
1300
+ * instead of count.
1301
+ */
1302
+ rewardPerValue?: boolean;
1303
+ /**
1304
+ * Flag indicating if the rule should reward quality posts.
1305
+ */
1306
+ rewardQualityPosts?: boolean;
1307
+ /**
1308
+ * Wallet address of the user can only be used if userId is not provided
1309
+ */
1310
+ royaltyAddress?: string;
1311
+ /**
1312
+ * Royalty percentage of the item.
1313
+ */
1314
+ royaltyPercentage?: number;
924
1315
  /**
925
1316
  * Currency associated with sales.
926
1317
  */
@@ -944,7 +1335,7 @@ export declare namespace RuleUpdateResponse {
944
1335
  /**
945
1336
  * Social media platform associated with the rule.
946
1337
  */
947
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
1338
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
948
1339
  /**
949
1340
  * URL of the social platform's logo.
950
1341
  */
@@ -953,10 +1344,18 @@ export declare namespace RuleUpdateResponse {
953
1344
  * Name of the social platform.
954
1345
  */
955
1346
  socialPlatformName?: string | null;
1347
+ /**
1348
+ * ID of the Steam app.
1349
+ */
1350
+ steamAppId?: string | null;
956
1351
  /**
957
1352
  * Array of streak milestones and corresponding rewards.
958
1353
  */
959
1354
  streakArray?: Array<Metadata.StreakArray> | null;
1355
+ /**
1356
+ * Metadata for swap loyalty rules
1357
+ */
1358
+ swap?: Metadata.Swap;
960
1359
  /**
961
1360
  * ID of the Telegram channel.
962
1361
  */
@@ -969,6 +1368,11 @@ export declare namespace RuleUpdateResponse {
969
1368
  * Flag indicating if all contracts are tracked.
970
1369
  */
971
1370
  trackAllContracts?: boolean | null;
1371
+ /**
1372
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
1373
+ * completed once the progress is 100%.
1374
+ */
1375
+ trackProgress?: boolean | null;
972
1376
  /**
973
1377
  * URL of the associated Twitter account.
974
1378
  */
@@ -1004,7 +1408,15 @@ export declare namespace RuleUpdateResponse {
1004
1408
  /**
1005
1409
  * Type of wallet associated with the rule.
1006
1410
  */
1007
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
1411
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
1412
+ /**
1413
+ * ID of the Youtube channel.
1414
+ */
1415
+ youtubeChannelId?: string | null;
1416
+ /**
1417
+ * ID of the Youtube video.
1418
+ */
1419
+ youtubeVideoId?: string | null;
1008
1420
  }
1009
1421
  namespace Metadata {
1010
1422
  interface Collection {
@@ -1019,7 +1431,7 @@ export declare namespace RuleUpdateResponse {
1019
1431
  /**
1020
1432
  * Blockchain network of the collection.
1021
1433
  */
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';
1434
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
1023
1435
  }
1024
1436
  /**
1025
1437
  * Object containing details for the call-to-action.
@@ -1084,6 +1496,49 @@ export declare namespace RuleUpdateResponse {
1084
1496
  */
1085
1497
  id: string;
1086
1498
  }
1499
+ /**
1500
+ * Liquidity pool details.
1501
+ */
1502
+ interface Liquidity {
1503
+ /**
1504
+ * Calculation type of the liquidity pool.
1505
+ */
1506
+ calculationType?: 'fixed' | 'custom';
1507
+ /**
1508
+ * Custom function to calculate the the reward amount based on the liquidity
1509
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1510
+ * USD.
1511
+ */
1512
+ customFunction?: string;
1513
+ /**
1514
+ * Liquidity provided per day in USD
1515
+ */
1516
+ liquidityPerDay?: number;
1517
+ /**
1518
+ * Blockchain network of the liquidity pool.
1519
+ */
1520
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
1521
+ /**
1522
+ * Indicates if only in-range liquidity is rewarded.
1523
+ */
1524
+ onlyRewardInRangeLiquidity?: boolean;
1525
+ /**
1526
+ * Array of liquidity pools associated with the rule.
1527
+ */
1528
+ pools?: Array<Liquidity.Pool>;
1529
+ /**
1530
+ * Protocol of the liquidity pool.
1531
+ */
1532
+ protocol?: string;
1533
+ }
1534
+ namespace Liquidity {
1535
+ interface Pool {
1536
+ /**
1537
+ * Unique identifier of the liquidity pool.
1538
+ */
1539
+ id: string;
1540
+ }
1541
+ }
1087
1542
  interface Range {
1088
1543
  /**
1089
1544
  * Reward amount for this range.
@@ -1097,6 +1552,14 @@ export declare namespace RuleUpdateResponse {
1097
1552
  * Start value of the range.
1098
1553
  */
1099
1554
  startRange: number;
1555
+ /**
1556
+ * ID of the loyalty badge for this range.
1557
+ */
1558
+ loyaltyBadgeId?: string;
1559
+ /**
1560
+ * Amount of the loyalty multiplier for this range.
1561
+ */
1562
+ loyaltyMultiplierAmount?: number;
1100
1563
  }
1101
1564
  /**
1102
1565
  * Object defining referral requirements.
@@ -1140,18 +1603,14 @@ export declare namespace RuleUpdateResponse {
1140
1603
  * Object containing details of the associated smart contract.
1141
1604
  */
1142
1605
  interface SmartContract {
1143
- /**
1144
- * ABI of the smart contract.
1145
- */
1146
- abi?: string | null;
1147
1606
  /**
1148
1607
  * Mapping of addresses for the smart contract.
1149
1608
  */
1150
1609
  addressMapping?: string | null;
1151
1610
  /**
1152
- * Array of bonus details applied to the rule.
1611
+ * Object containing details of the amount multiplier from the event.
1153
1612
  */
1154
- bonus?: Array<SmartContract.Bonus> | null;
1613
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1155
1614
  /**
1156
1615
  * ID of the smart contract.
1157
1616
  */
@@ -1160,58 +1619,28 @@ export declare namespace RuleUpdateResponse {
1160
1619
  * Criteria to evaluate the smart contract event.
1161
1620
  */
1162
1621
  criteria?: 'everyEvent' | 'byParameter' | null;
1163
- /**
1164
- * Time range applied to the rule.
1165
- */
1166
- customRange?: SmartContract.CustomRange | null;
1167
1622
  /**
1168
1623
  * Event emitted by the smart contract.
1169
1624
  */
1170
1625
  event?: string | null;
1171
- /**
1172
- * Maximum value allowed for the parameter.
1173
- */
1174
- max?: number | null;
1175
1626
  /**
1176
1627
  * Array of parameters for the smart contract.
1177
1628
  */
1178
1629
  params?: Array<SmartContract.Param> | null;
1179
1630
  /**
1180
- * Flag indicating if a bonus is applied.
1181
- */
1182
- withBonus?: boolean | null;
1183
- /**
1184
- * Flag indicating if a custom range is applied.
1631
+ * Type of the smart contract interaction.
1185
1632
  */
1186
- withCustomRange?: boolean | null;
1187
- /**
1188
- * Flag indicating if a maximum limit is applied.
1189
- */
1190
- withMax?: boolean | null;
1633
+ type?: 'function' | 'event' | null;
1191
1634
  }
1192
1635
  namespace SmartContract {
1193
- interface Bonus {
1636
+ /**
1637
+ * Object containing details of the amount multiplier from the event.
1638
+ */
1639
+ interface AmountMultiplier {
1194
1640
  /**
1195
- * Amount of the bonus.
1641
+ * Mapping of the value for the smart contract.
1196
1642
  */
1197
- amount?: number | null;
1198
- /**
1199
- * Number of times the bonus is applied.
1200
- */
1201
- count?: number | null;
1202
- }
1203
- /**
1204
- * Time range applied to the rule.
1205
- */
1206
- interface CustomRange {
1207
- /**
1208
- * End time of the custom range.
1209
- */
1210
- endsAt?: string | null;
1211
- /**
1212
- * Start time of the custom range.
1213
- */
1214
- startsAt?: string | null;
1643
+ valueMapping?: string | null;
1215
1644
  }
1216
1645
  interface Param {
1217
1646
  /**
@@ -1248,6 +1677,24 @@ export declare namespace RuleUpdateResponse {
1248
1677
  */
1249
1678
  streakMilestone: number;
1250
1679
  }
1680
+ /**
1681
+ * Metadata for swap loyalty rules
1682
+ */
1683
+ interface Swap {
1684
+ provider?: 'any' | 'relay' | 'lifi';
1685
+ relayReferrerId?: string;
1686
+ requireCrossChainSwap?: boolean;
1687
+ swappedToChain?: 'any' | number | string;
1688
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1689
+ tokenMode?: 'any' | 'specific';
1690
+ trackTokenAmount?: boolean;
1691
+ }
1692
+ namespace Swap {
1693
+ interface SwappedToToken {
1694
+ address: string;
1695
+ chainId: string;
1696
+ }
1697
+ }
1251
1698
  }
1252
1699
  }
1253
1700
  export interface RuleListResponse {
@@ -1255,9 +1702,6 @@ export interface RuleListResponse {
1255
1702
  hasNextPage: boolean;
1256
1703
  }
1257
1704
  export declare namespace RuleListResponse {
1258
- /**
1259
- * Schema for a loyalty rule
1260
- */
1261
1705
  interface Data {
1262
1706
  /**
1263
1707
  * Unique identifier for the loyalty rule
@@ -1266,7 +1710,7 @@ export declare namespace RuleListResponse {
1266
1710
  /**
1267
1711
  * Amount associated with the loyalty rule
1268
1712
  */
1269
- amount: number;
1713
+ amount: number | null;
1270
1714
  /**
1271
1715
  * Timestamp when the loyalty rule was created
1272
1716
  */
@@ -1275,14 +1719,38 @@ export declare namespace RuleListResponse {
1275
1719
  * Timestamp when the loyalty rule was deleted (if applicable)
1276
1720
  */
1277
1721
  deletedAt: string | null;
1722
+ /**
1723
+ * Description of the loyalty rule
1724
+ */
1725
+ description: string;
1726
+ /**
1727
+ * End time of the loyalty rule
1728
+ */
1729
+ endTime: string | null;
1278
1730
  /**
1279
1731
  * Frequency of the loyalty rule
1280
1732
  */
1281
1733
  frequency: string;
1734
+ /**
1735
+ * Chains attached to the loyalty rule
1736
+ */
1737
+ loyaltyRuleChain: Array<Data.LoyaltyRuleChain>;
1738
+ /**
1739
+ * Name of the loyalty rule
1740
+ */
1741
+ name: string;
1282
1742
  /**
1283
1743
  * Unique identifier for the organization
1284
1744
  */
1285
1745
  organizationId: string;
1746
+ /**
1747
+ * Type of the reward
1748
+ */
1749
+ rewardType: 'points' | 'multiplier' | 'badge';
1750
+ /**
1751
+ * Start time of the loyalty rule
1752
+ */
1753
+ startTime: string | null;
1286
1754
  /**
1287
1755
  * Type of the loyalty rule
1288
1756
  */
@@ -1299,10 +1767,744 @@ export declare namespace RuleListResponse {
1299
1767
  * Optional address of the collection
1300
1768
  */
1301
1769
  collectionAddress?: string;
1770
+ /**
1771
+ * URL of the media associated with the loyalty rule
1772
+ */
1773
+ mediaUrl?: string | null;
1302
1774
  /**
1303
1775
  * Optional metadata for the loyalty rule
1304
1776
  */
1305
- metadata?: Record<string, unknown>;
1777
+ metadata?: {
1778
+ [key: string]: Data.Metadata;
1779
+ };
1780
+ }
1781
+ namespace Data {
1782
+ interface LoyaltyRuleChain {
1783
+ /**
1784
+ * Unique identifier for the rule chain
1785
+ */
1786
+ id: string;
1787
+ loyaltyConditions: Array<LoyaltyRuleChain.LoyaltyCondition>;
1788
+ /**
1789
+ * Unique identifier for the loyalty rule
1790
+ */
1791
+ loyaltyRuleId: string;
1792
+ /**
1793
+ * Name of the rule chain
1794
+ */
1795
+ name: string;
1796
+ }
1797
+ namespace LoyaltyRuleChain {
1798
+ interface LoyaltyCondition {
1799
+ /**
1800
+ * Unique identifier for the condition
1801
+ */
1802
+ id: string;
1803
+ /**
1804
+ * Amount of the condition
1805
+ */
1806
+ amount: number | null;
1807
+ association: Array<LoyaltyCondition.Association>;
1808
+ /**
1809
+ * URL of the CSV file
1810
+ */
1811
+ csvUrl: string | null;
1812
+ /**
1813
+ * Description of the condition
1814
+ */
1815
+ description: string | null;
1816
+ /**
1817
+ * Number of times the condition must be met
1818
+ */
1819
+ repeatCount: number | null;
1820
+ /**
1821
+ * Number of times the condition must be met
1822
+ */
1823
+ requiredCount: number | null;
1824
+ /**
1825
+ * Type of the condition
1826
+ */
1827
+ type: 'rule' | 'rules' | 'points' | 'section' | 'level' | 'api' | 'badge' | 'badges' | 'csv';
1828
+ }
1829
+ namespace LoyaltyCondition {
1830
+ interface Association {
1831
+ /**
1832
+ * Unique identifier for the association
1833
+ */
1834
+ id: string;
1835
+ /**
1836
+ * Unique identifier for the loyalty badge
1837
+ */
1838
+ loyaltyBadgeId: string | null;
1839
+ /**
1840
+ * Unique identifier for the loyalty currency
1841
+ */
1842
+ loyaltyCurrencyId: string | null;
1843
+ loyaltyRule: Association.LoyaltyRule | null;
1844
+ /**
1845
+ * Unique identifier for the loyalty rule group
1846
+ */
1847
+ loyaltyRuleGroupId: string | null;
1848
+ /**
1849
+ * Unique identifier for the loyalty rule
1850
+ */
1851
+ loyaltyRuleId: string | null;
1852
+ }
1853
+ namespace Association {
1854
+ interface LoyaltyRule {
1855
+ /**
1856
+ * Name of the loyalty rule
1857
+ */
1858
+ name: string;
1859
+ }
1860
+ }
1861
+ }
1862
+ }
1863
+ interface Metadata {
1864
+ /**
1865
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
1866
+ * any rule completions count as check-in.
1867
+ */
1868
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
1869
+ /**
1870
+ * Number of tokens per batch.
1871
+ */
1872
+ batchSize?: number | null;
1873
+ /**
1874
+ * Text displayed on the action button.
1875
+ */
1876
+ buttonText?: string | null;
1877
+ /**
1878
+ * Flag indicating if commenting is required.
1879
+ */
1880
+ checkComment?: boolean | null;
1881
+ /**
1882
+ * Flag indicating if liking the post is required.
1883
+ */
1884
+ checkLike?: boolean | null;
1885
+ /**
1886
+ * Flag indicating if reposting is required.
1887
+ */
1888
+ checkRepost?: boolean | null;
1889
+ /**
1890
+ * Text to check in the Twitter post, username, or bio.
1891
+ */
1892
+ checkText?: string | Array<string> | null;
1893
+ /**
1894
+ * Array of collections associated with the rule.
1895
+ */
1896
+ collection?: Array<Metadata.Collection>;
1897
+ /**
1898
+ * Conditions for completing the profile.
1899
+ */
1900
+ completeProfileConditions?: {
1901
+ [key: string]: boolean;
1902
+ } | null;
1903
+ /**
1904
+ * Description of the external rule condition (only for external rules)
1905
+ */
1906
+ conditionDescription?: string;
1907
+ /**
1908
+ * Object containing details for the call-to-action.
1909
+ */
1910
+ cta?: Metadata.Cta | null;
1911
+ /**
1912
+ * API key for custom rewards integration.
1913
+ */
1914
+ customRewardsApiKey?: string;
1915
+ /**
1916
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1917
+ */
1918
+ directRpc?: boolean;
1919
+ /**
1920
+ * Array of Discord servers, channels, and roles to join.
1921
+ */
1922
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
1923
+ /**
1924
+ * Array of drip quests required to complete the rule.
1925
+ */
1926
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
1927
+ /**
1928
+ * Flag indicating whether joining Discord servers is required.
1929
+ */
1930
+ enableJoinDiscordServers?: boolean | null;
1931
+ /**
1932
+ * Flag indicating whether streaks are enabled.
1933
+ */
1934
+ enableStreaks?: boolean | null;
1935
+ /**
1936
+ * Flag indicating whether the verified multiplier is enabled.
1937
+ */
1938
+ enableVerifiedMultiplier?: boolean;
1939
+ /**
1940
+ * Type of ERC20 token for the loyalty rule.
1941
+ */
1942
+ erc20Type?: 'erc20' | 'native';
1943
+ /**
1944
+ * Fill source of the order for the token sale
1945
+ */
1946
+ fillSource?: string;
1947
+ /**
1948
+ * Percentage reward given to a user for their first referral.
1949
+ */
1950
+ firstReferralReward?: number | null;
1951
+ /**
1952
+ * Name of the GitHub branch to check for PR merge.
1953
+ */
1954
+ githubBranchName?: string | null;
1955
+ /**
1956
+ * URL of the GitHub repository to check for star.
1957
+ */
1958
+ githubRepoUrl?: string | null;
1959
+ /**
1960
+ * Flag indicating whether the fill source is included.
1961
+ */
1962
+ hasFillSource?: boolean;
1963
+ /**
1964
+ * Indicates if the item has never been sold.
1965
+ */
1966
+ hasNeverSold?: boolean;
1967
+ /**
1968
+ * Indicates if the full royalty has been paid for items.
1969
+ */
1970
+ hasPaidFullRoyalty?: boolean;
1971
+ /**
1972
+ * Flag indicating if the sale currency is included.
1973
+ */
1974
+ hasSaleCurrency?: boolean;
1975
+ /**
1976
+ * Indicates if the user has a verified Twitter account.
1977
+ */
1978
+ hasVerifiedTwitter?: boolean;
1979
+ /**
1980
+ * URL of the image associated with the rule.
1981
+ */
1982
+ imageUrl?: string | null;
1983
+ /**
1984
+ * If enabled, the first transaction done on the platform will complete this rule
1985
+ */
1986
+ isCheckInOnEveryTxn?: boolean;
1987
+ /**
1988
+ * Indicates if the multiplier has been applied to rewards.
1989
+ */
1990
+ isMultiplierApplied?: boolean;
1991
+ /**
1992
+ * Flag indicating if the rule is restricted to new users.
1993
+ */
1994
+ isRestrictedToNewUsers?: boolean;
1995
+ /**
1996
+ * Flag indicating if rewards are applied retroactively.
1997
+ */
1998
+ isRetroactive?: boolean | null;
1999
+ /**
2000
+ * Flag indicating if the token hold multiplier is applied.
2001
+ */
2002
+ isTokenHoldMultiplier?: boolean;
2003
+ /**
2004
+ * Optional link associated with the metadata.
2005
+ */
2006
+ link?: string | null;
2007
+ /**
2008
+ * Liquidity pool details.
2009
+ */
2010
+ liquidity?: Metadata.Liquidity;
2011
+ /**
2012
+ * Maximum quantity constraint for token holding.
2013
+ */
2014
+ maxQty?: number | null;
2015
+ /**
2016
+ * Minimum quantity constraint for token holding.
2017
+ */
2018
+ minQty?: number | null;
2019
+ /**
2020
+ * Array of loyalty currency IDs used for multipliers.
2021
+ */
2022
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
2023
+ /**
2024
+ * Flag indicating whether to include only known users.
2025
+ */
2026
+ onlyKnownUsers?: boolean;
2027
+ /**
2028
+ * Flag indicating whether to include only native tokens.
2029
+ */
2030
+ onlyNative?: boolean;
2031
+ /**
2032
+ * Flag indicating whether to include only non-listed items.
2033
+ */
2034
+ onlyNonListed?: boolean;
2035
+ /**
2036
+ * Indicates if only existing users are rewarded.
2037
+ */
2038
+ onlyRewardExistingUser?: boolean;
2039
+ /**
2040
+ * give points for only one token ownership per contract
2041
+ */
2042
+ onlyRewardSingleTokenOwnership?: boolean | null;
2043
+ /**
2044
+ * Promotional code associated with the rule.
2045
+ */
2046
+ promoCode?: string;
2047
+ /**
2048
+ * URL of the CSV file containing promo codes.
2049
+ */
2050
+ promoCodeCsvUrl?: string;
2051
+ /**
2052
+ * Numbers of the promotional code to be generated.
2053
+ */
2054
+ promoCodeLength?: number | null;
2055
+ /**
2056
+ * Type of the promotional code.
2057
+ */
2058
+ promoCodeType?: 'code' | 'csv' | 'generate';
2059
+ /**
2060
+ * Array defining ranges and corresponding rewards.
2061
+ */
2062
+ range?: Array<Metadata.Range>;
2063
+ /**
2064
+ * ID of the Reddit post.
2065
+ */
2066
+ redditPostId?: string | null;
2067
+ /**
2068
+ * Object defining referral requirements.
2069
+ */
2070
+ referralRequirements?: Metadata.ReferralRequirements | null;
2071
+ /**
2072
+ * Lump sum reward given to a referrer.
2073
+ */
2074
+ referrerReward?: number | null;
2075
+ /**
2076
+ * Loyalty currency ID of the referrer reward.
2077
+ */
2078
+ referrerRewardLoyaltyCurrencyId?: string | null;
2079
+ /**
2080
+ * Flag indicating if the post link is required.
2081
+ */
2082
+ requirePostLink?: boolean | null;
2083
+ /**
2084
+ * Flag indicating if media metadata is required.
2085
+ */
2086
+ requirePostMediaLink?: boolean | null;
2087
+ /**
2088
+ * Flag indicating if the rule can also reward badges per range.
2089
+ */
2090
+ rewardBadgePerRange?: boolean;
2091
+ /**
2092
+ * Flag indicating if the reward is rewarded by batch.
2093
+ */
2094
+ rewardByBatch?: boolean | null;
2095
+ /**
2096
+ * Criteria to evaluate the reward.
2097
+ */
2098
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
2099
+ /**
2100
+ * Flag indicating if the reward is rewarded per action.
2101
+ */
2102
+ rewardPerAction?: boolean | null;
2103
+ /**
2104
+ * Flag indicating if rewards are given per impression.
2105
+ */
2106
+ rewardPerImpression?: boolean | null;
2107
+ /**
2108
+ * Flag indicating if the rule should reward based on value of traded tokens
2109
+ * instead of count.
2110
+ */
2111
+ rewardPerValue?: boolean;
2112
+ /**
2113
+ * Flag indicating if the rule should reward quality posts.
2114
+ */
2115
+ rewardQualityPosts?: boolean;
2116
+ /**
2117
+ * Wallet address of the user can only be used if userId is not provided
2118
+ */
2119
+ royaltyAddress?: string;
2120
+ /**
2121
+ * Royalty percentage of the item.
2122
+ */
2123
+ royaltyPercentage?: number;
2124
+ /**
2125
+ * Currency associated with sales.
2126
+ */
2127
+ saleCurrency?: string;
2128
+ /**
2129
+ * Percentage reward given for a second-level referral.
2130
+ */
2131
+ secondReferralReward?: number | null;
2132
+ /**
2133
+ * Flag indicating if the multiplier is skipped.
2134
+ */
2135
+ skipMultiplier?: boolean | null;
2136
+ /**
2137
+ * Object containing details of the associated smart contract.
2138
+ */
2139
+ smartContract?: Metadata.SmartContract;
2140
+ /**
2141
+ * Array of snapshot proposals for the rule.
2142
+ */
2143
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
2144
+ /**
2145
+ * Social media platform associated with the rule.
2146
+ */
2147
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
2148
+ /**
2149
+ * URL of the social platform's logo.
2150
+ */
2151
+ socialPlatformLogo?: string | null;
2152
+ /**
2153
+ * Name of the social platform.
2154
+ */
2155
+ socialPlatformName?: string | null;
2156
+ /**
2157
+ * ID of the Steam app.
2158
+ */
2159
+ steamAppId?: string | null;
2160
+ /**
2161
+ * Array of streak milestones and corresponding rewards.
2162
+ */
2163
+ streakArray?: Array<Metadata.StreakArray> | null;
2164
+ /**
2165
+ * Metadata for swap loyalty rules
2166
+ */
2167
+ swap?: Metadata.Swap;
2168
+ /**
2169
+ * ID of the Telegram channel.
2170
+ */
2171
+ telegramChannelId?: string | null;
2172
+ /**
2173
+ * Time delay in seconds to verify actions.
2174
+ */
2175
+ timeDelayToVerifySeconds?: string | number | null;
2176
+ /**
2177
+ * Flag indicating if all contracts are tracked.
2178
+ */
2179
+ trackAllContracts?: boolean | null;
2180
+ /**
2181
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2182
+ * completed once the progress is 100%.
2183
+ */
2184
+ trackProgress?: boolean | null;
2185
+ /**
2186
+ * URL of the associated Twitter account.
2187
+ */
2188
+ twitterAccountUrl?: string;
2189
+ /**
2190
+ * Hashtag associated with the Twitter post.
2191
+ */
2192
+ twitterHashtag?: string;
2193
+ /**
2194
+ * URL of the associated Twitter post.
2195
+ */
2196
+ twitterPostUrl?: string;
2197
+ /**
2198
+ * Unique identifier of the Twitter user.
2199
+ */
2200
+ twitterUserId?: string;
2201
+ /**
2202
+ * Twitter username of the user.
2203
+ */
2204
+ twitterUsername?: string;
2205
+ /**
2206
+ * Minimum length of the verification text.
2207
+ */
2208
+ verificationTextMinimumLength?: number | null;
2209
+ /**
2210
+ * Multiplier applied to rewards for verified users.
2211
+ */
2212
+ verifiedMultiplier?: number | null;
2213
+ /**
2214
+ * Placeholder text for verification input fields.
2215
+ */
2216
+ verifyPlaceHolderText?: string | null;
2217
+ /**
2218
+ * Type of wallet associated with the rule.
2219
+ */
2220
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
2221
+ /**
2222
+ * ID of the Youtube channel.
2223
+ */
2224
+ youtubeChannelId?: string | null;
2225
+ /**
2226
+ * ID of the Youtube video.
2227
+ */
2228
+ youtubeVideoId?: string | null;
2229
+ }
2230
+ namespace Metadata {
2231
+ interface Collection {
2232
+ /**
2233
+ * Blockchain address of the collection.
2234
+ */
2235
+ address?: string;
2236
+ /**
2237
+ * Multiplier applied to the rewards for this collection.
2238
+ */
2239
+ multiplier?: number;
2240
+ /**
2241
+ * Blockchain network of the collection.
2242
+ */
2243
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
2244
+ }
2245
+ /**
2246
+ * Object containing details for the call-to-action.
2247
+ */
2248
+ interface Cta {
2249
+ /**
2250
+ * Link for the call-to-action.
2251
+ */
2252
+ href?: string | null;
2253
+ /**
2254
+ * Label for the call-to-action.
2255
+ */
2256
+ label?: string | null;
2257
+ }
2258
+ interface DiscordServersToJoin {
2259
+ /**
2260
+ * ID of the Discord server to join.
2261
+ */
2262
+ id?: string;
2263
+ /**
2264
+ * Array of Discord channels to join.
2265
+ */
2266
+ channels?: Array<DiscordServersToJoin.Channel>;
2267
+ /**
2268
+ * Array of roles to assign in the Discord server.
2269
+ */
2270
+ roles?: Array<DiscordServersToJoin.Role>;
2271
+ }
2272
+ namespace DiscordServersToJoin {
2273
+ interface Channel {
2274
+ /**
2275
+ * ID of the Discord channel.
2276
+ */
2277
+ id?: string;
2278
+ /**
2279
+ * Array of emojis used in the channel.
2280
+ */
2281
+ emojis?: Array<Channel.Emoji>;
2282
+ /**
2283
+ * Phrase of text to be present in the discord message
2284
+ */
2285
+ text?: string;
2286
+ }
2287
+ namespace Channel {
2288
+ interface Emoji {
2289
+ /**
2290
+ * ID of the emoji used in the channel.
2291
+ */
2292
+ id?: string;
2293
+ }
2294
+ }
2295
+ interface Role {
2296
+ /**
2297
+ * ID of the role in the Discord server.
2298
+ */
2299
+ id: string;
2300
+ }
2301
+ }
2302
+ interface DripQuestsToComplete {
2303
+ /**
2304
+ * ID of the drip quest to complete.
2305
+ */
2306
+ id: string;
2307
+ }
2308
+ /**
2309
+ * Liquidity pool details.
2310
+ */
2311
+ interface Liquidity {
2312
+ /**
2313
+ * Calculation type of the liquidity pool.
2314
+ */
2315
+ calculationType?: 'fixed' | 'custom';
2316
+ /**
2317
+ * Custom function to calculate the the reward amount based on the liquidity
2318
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2319
+ * USD.
2320
+ */
2321
+ customFunction?: string;
2322
+ /**
2323
+ * Liquidity provided per day in USD
2324
+ */
2325
+ liquidityPerDay?: number;
2326
+ /**
2327
+ * Blockchain network of the liquidity pool.
2328
+ */
2329
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
2330
+ /**
2331
+ * Indicates if only in-range liquidity is rewarded.
2332
+ */
2333
+ onlyRewardInRangeLiquidity?: boolean;
2334
+ /**
2335
+ * Array of liquidity pools associated with the rule.
2336
+ */
2337
+ pools?: Array<Liquidity.Pool>;
2338
+ /**
2339
+ * Protocol of the liquidity pool.
2340
+ */
2341
+ protocol?: string;
2342
+ }
2343
+ namespace Liquidity {
2344
+ interface Pool {
2345
+ /**
2346
+ * Unique identifier of the liquidity pool.
2347
+ */
2348
+ id: string;
2349
+ }
2350
+ }
2351
+ interface Range {
2352
+ /**
2353
+ * Reward amount for this range.
2354
+ */
2355
+ amount: number;
2356
+ /**
2357
+ * End value of the range.
2358
+ */
2359
+ endRange: number;
2360
+ /**
2361
+ * Start value of the range.
2362
+ */
2363
+ startRange: number;
2364
+ /**
2365
+ * ID of the loyalty badge for this range.
2366
+ */
2367
+ loyaltyBadgeId?: string;
2368
+ /**
2369
+ * Amount of the loyalty multiplier for this range.
2370
+ */
2371
+ loyaltyMultiplierAmount?: number;
2372
+ }
2373
+ /**
2374
+ * Object defining referral requirements.
2375
+ */
2376
+ interface ReferralRequirements {
2377
+ /**
2378
+ * Flag indicating if achieving points is required.
2379
+ */
2380
+ achievePoints?: boolean | null;
2381
+ /**
2382
+ * Flag indicating if completing the profile is required.
2383
+ */
2384
+ completeProfile?: boolean | null;
2385
+ /**
2386
+ * Flag indicating if connecting Discord is required.
2387
+ */
2388
+ connectDiscord?: boolean | null;
2389
+ /**
2390
+ * Flag indicating if connecting email is required.
2391
+ */
2392
+ connectEmail?: boolean | null;
2393
+ /**
2394
+ * Flag indicating if connecting Twitter is required.
2395
+ */
2396
+ connectTwitter?: boolean | null;
2397
+ points?: ReferralRequirements.Points | null;
2398
+ }
2399
+ namespace ReferralRequirements {
2400
+ interface Points {
2401
+ /**
2402
+ * Points required for referral.
2403
+ */
2404
+ amount?: number | null;
2405
+ /**
2406
+ * ID of the loyalty currency for referral.
2407
+ */
2408
+ loyaltyCurrecyId?: string | null;
2409
+ }
2410
+ }
2411
+ /**
2412
+ * Object containing details of the associated smart contract.
2413
+ */
2414
+ interface SmartContract {
2415
+ /**
2416
+ * Mapping of addresses for the smart contract.
2417
+ */
2418
+ addressMapping?: string | null;
2419
+ /**
2420
+ * Object containing details of the amount multiplier from the event.
2421
+ */
2422
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2423
+ /**
2424
+ * ID of the smart contract.
2425
+ */
2426
+ contractId?: string | null;
2427
+ /**
2428
+ * Criteria to evaluate the smart contract event.
2429
+ */
2430
+ criteria?: 'everyEvent' | 'byParameter' | null;
2431
+ /**
2432
+ * Event emitted by the smart contract.
2433
+ */
2434
+ event?: string | null;
2435
+ /**
2436
+ * Array of parameters for the smart contract.
2437
+ */
2438
+ params?: Array<SmartContract.Param> | null;
2439
+ /**
2440
+ * Type of the smart contract interaction.
2441
+ */
2442
+ type?: 'function' | 'event' | null;
2443
+ }
2444
+ namespace SmartContract {
2445
+ /**
2446
+ * Object containing details of the amount multiplier from the event.
2447
+ */
2448
+ interface AmountMultiplier {
2449
+ /**
2450
+ * Mapping of the value for the smart contract.
2451
+ */
2452
+ valueMapping?: string | null;
2453
+ }
2454
+ interface Param {
2455
+ /**
2456
+ * Condition to check for the parameter.
2457
+ */
2458
+ condition?: string | null;
2459
+ /**
2460
+ * Name of the smart contract parameter.
2461
+ */
2462
+ name?: string | null;
2463
+ /**
2464
+ * Value of the parameter.
2465
+ */
2466
+ value?: string | null;
2467
+ }
2468
+ }
2469
+ interface SnapshotProposal {
2470
+ /**
2471
+ * ID of the snapshot proposal.
2472
+ */
2473
+ id: string;
2474
+ /**
2475
+ * Space associated with the snapshot proposal.
2476
+ */
2477
+ space: string;
2478
+ }
2479
+ interface StreakArray {
2480
+ /**
2481
+ * Reward amount for achieving the streak milestone.
2482
+ */
2483
+ streakAmount: number;
2484
+ /**
2485
+ * Milestone required to achieve the streak.
2486
+ */
2487
+ streakMilestone: number;
2488
+ }
2489
+ /**
2490
+ * Metadata for swap loyalty rules
2491
+ */
2492
+ interface Swap {
2493
+ provider?: 'any' | 'relay' | 'lifi';
2494
+ relayReferrerId?: string;
2495
+ requireCrossChainSwap?: boolean;
2496
+ swappedToChain?: 'any' | number | string;
2497
+ swappedToTokens?: Array<Swap.SwappedToToken>;
2498
+ tokenMode?: 'any' | 'specific';
2499
+ trackTokenAmount?: boolean;
2500
+ }
2501
+ namespace Swap {
2502
+ interface SwappedToToken {
2503
+ address: string;
2504
+ chainId: string;
2505
+ }
2506
+ }
2507
+ }
1306
2508
  }
1307
2509
  }
1308
2510
  export interface RuleDeleteResponse {
@@ -1310,7 +2512,7 @@ export interface RuleDeleteResponse {
1310
2512
  deletedAt: string;
1311
2513
  }
1312
2514
  export interface RuleCompleteResponse {
1313
- message: string;
2515
+ message: 'Completion request added to queue' | 'Link click being verified, come back later to check the status';
1314
2516
  }
1315
2517
  export interface RuleGetStatusResponse {
1316
2518
  data: Array<RuleGetStatusResponse.Data>;
@@ -1318,9 +2520,110 @@ export interface RuleGetStatusResponse {
1318
2520
  export declare namespace RuleGetStatusResponse {
1319
2521
  interface Data {
1320
2522
  loyaltyRuleId: string;
1321
- status: 'pending' | 'processing' | 'completed' | 'failed';
1322
2523
  userId: string;
2524
+ /**
2525
+ * The ID of the loyalty rule status for the Progress object
2526
+ */
2527
+ id?: string;
2528
+ createdAt?: string;
2529
+ fulfilledAt?: string | null;
2530
+ /**
2531
+ * Categorized examples of messages that may be returned for a loyalty rule's
2532
+ * processing result.
2533
+ *
2534
+ * User Onboarding
2535
+ *
2536
+ * - Check In: "Streak successful"
2537
+ * - Complete Profile Details: "Profile not complete"
2538
+ *
2539
+ * Connect Accounts
2540
+ *
2541
+ * - Connect TikTok: "TikTok not connected"
2542
+ * - Connect Discord: "Discord not connected", "Discord request timeout"
2543
+ * - Connect X: "Twitter not connected", "Twitter not connected or content url is
2544
+ * required"
2545
+ * - Connect Email: "Email address not connected"
2546
+ * - Connect Telegram: "Telegram not connected", "user has not setup telegram (no
2547
+ * telegramUsername), please setup username in telegram and reconnect.",
2548
+ * "Telegram request rate-limited"
2549
+ * - Connect Steam: "Steam not connected"
2550
+ * - Connect Youtube: "Youtube not connected"
2551
+ *
2552
+ * Social Quests
2553
+ *
2554
+ * - Join Telegram Group: "Telegram Channel not joined", "Telegram Channel joined
2555
+ * successfully"
2556
+ * - Post on TikTok: "TikTok post not verified"
2557
+ * - Comment on an X Post: "Quest Completed: You have commented on the tweet",
2558
+ * "Quest Not Completed: Comment not found for the specified tweet"
2559
+ * - Repost an X Post: "Quest Completed: You have retweeted the tweet", "Quest Not
2560
+ * Completed: Retweet not found for the specified tweet", "Quest Completed: You
2561
+ * have retweeted and commented on the tweet", "Quest Not Completed: You have not
2562
+ * retweeted or commented on the tweet"
2563
+ * - Follow an X Account: "Missing required parameters: twitterUserId,
2564
+ * targetUsername", "Quest Completed: You are a follower of
2565
+ * @${targetUsername}", "Quest Not Completed: Please follow @${targetUsername}
2566
+ * and try again in few minutes"
2567
+ * - React to an X Post: "Missing required parameters: texts, twitterUserId,
2568
+ * userTweetId", "No text provided", "Quest Completed: You have posted {tweetId}
2569
+ * a tweet with the text {text}", "Quest Not Completed: Your all previous {COUNT}
2570
+ * posts are already claimed. Please post a new tweet and try again in a few
2571
+ * minutes.", "Tweet is already claimed", "Tweet does not belong to the user",
2572
+ * "Text not found in tweet", "Tweet is before the quest start time", "Tweet does
2573
+ * not have media", "Text found in tweet"
2574
+ * - Add Text to X Bio: "Missing required parameters: texts, twitterUserId", "User
2575
+ * not found", "Text found in bio", "Text not found in bio"
2576
+ * - Add Text to X Username: "Missing required parameters: texts, twitterUserId",
2577
+ * "User not found", "Text found in username", "Text not found in username"
2578
+ * - Comment on an X Post with Text: "Missing required parameters: texts,
2579
+ * twitterUserId", "Comment is already claimed", "Text found in comment", "Text
2580
+ * not found in comment", "Tweet not found or could not be retrieved"
2581
+ * - Comment on a YouTube Video: "Youtube comment added", "Youtube comment not
2582
+ * added"
2583
+ * - Subscribe to a YouTube Channel: "Youtube channel subscribed", "Quest failed,
2584
+ * please make sure you have made your subscriptions public in youtube"
2585
+ * - Get X post impressions: "You've already claimed the reward for this impression
2586
+ * range."
2587
+ * - Add an Item to Steam Wishlist: "Steam Wishlist item added", "Steam Wishlist
2588
+ * item not added"
2589
+ *
2590
+ * Complex Onchain Logic
2591
+ *
2592
+ * - Token Swap: "Swap rewards calculated successfully", "Swap rule failed"
2593
+ *
2594
+ * Other
2595
+ *
2596
+ * - Answer a Quiz: "Quiz question not configured", "No question response found",
2597
+ * "Incorrect answer", "Correct answer"
2598
+ * - Answer a Poll: "Poll question not configured", "Poll response recorded"
2599
+ * - Spend in Shopify Store: "Shopify not connected"
2600
+ * - Points Airdrop: "Seems like you're not eligible for this points airdrop."
2601
+ *
2602
+ * General
2603
+ *
2604
+ * - "Quest already completed"
2605
+ * - "Quest already completed using the same social account (${socialAccountName}),
2606
+ * with the different user."
2607
+ * - "You've already claimed the reward for this quest."
2608
+ * - "Quest not achieved, please try again."
2609
+ * - "Rule is not setup"
2610
+ * - "Request aborted due to timeout"
2611
+ * - "Google account not connected"
2612
+ * - "Claim failed: Multiplier is already active"
2613
+ */
1323
2614
  message?: string;
2615
+ organizationId?: string;
2616
+ /**
2617
+ * The progress of the loyalty rule from 0 to 100
2618
+ */
2619
+ progress?: number;
2620
+ /**
2621
+ * Status of the queued job, this is only returned if the job is queued and being
2622
+ * processed, this wil be retained for 10 minutes after the job is completed
2623
+ */
2624
+ status?: 'pending' | 'processing' | 'completed' | 'failed';
2625
+ updatedAt?: string;
2626
+ websiteId?: string;
1324
2627
  }
1325
2628
  }
1326
2629
  export interface RuleCreateParams {
@@ -1367,7 +2670,7 @@ export interface RuleCreateParams {
1367
2670
  /**
1368
2671
  * Type of loyalty rule being created
1369
2672
  */
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';
2673
+ 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_github' | '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' | 'stratus_function' | 'connected_tiktok' | 'tiktok_follow' | 'github_repo_star' | 'github_repo_fork' | 'github_repo_collaborator' | 'github_merge_PR' | 'discord_role_grant' | 'connected_reddit' | 'reddit_comment';
1371
2674
  /**
1372
2675
  * Unique identifier for the associated website
1373
2676
  */
@@ -1376,6 +2679,10 @@ export interface RuleCreateParams {
1376
2679
  * URL of the background asset to be displayed
1377
2680
  */
1378
2681
  backgroundAssetUrl?: string;
2682
+ /**
2683
+ * The type of claim for the reward
2684
+ */
2685
+ claimType?: 'manual' | 'auto' | null;
1379
2686
  /**
1380
2687
  * Blockchain address of the associated collection
1381
2688
  */
@@ -1396,6 +2703,15 @@ export interface RuleCreateParams {
1396
2703
  * Optional detailed description of the rule
1397
2704
  */
1398
2705
  description?: string;
2706
+ duplicatedFromId?: string | null;
2707
+ /**
2708
+ * ID of the external integration
2709
+ */
2710
+ externalIntegrationId?: string | null;
2711
+ /**
2712
+ * Optional stratus function id for the rule
2713
+ */
2714
+ functionId?: string | null;
1399
2715
  /**
1400
2716
  * Whether to hide this rule in the user interface
1401
2717
  */
@@ -1403,15 +2719,33 @@ export interface RuleCreateParams {
1403
2719
  /**
1404
2720
  * Interval between rule executions
1405
2721
  */
1406
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
2722
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1407
2723
  /**
1408
2724
  * Whether this rule is mandatory
1409
2725
  */
1410
2726
  isRequired?: boolean;
2727
+ /**
2728
+ * Unique identifier for the loyalty badge
2729
+ */
2730
+ loyaltyBadgeId?: string | null;
1411
2731
  /**
1412
2732
  * Unique identifier for the loyalty rule group
1413
2733
  */
1414
2734
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
2735
+ /**
2736
+ * URL for uploading loyalty user allotment via CSV
2737
+ */
2738
+ loyaltyUserAllotmentCsvUrl?: string;
2739
+ /**
2740
+ * The interval for the max amount. Available for the smart contract and external
2741
+ * rules.
2742
+ */
2743
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
2744
+ /**
2745
+ * The maximum amount of points a user can earn per interval. Available for the
2746
+ * smart contract and external rules.
2747
+ */
2748
+ maxAmountPerInterval?: number | null;
1415
2749
  /**
1416
2750
  * URL of the media to be displayed
1417
2751
  */
@@ -1419,25 +2753,46 @@ export interface RuleCreateParams {
1419
2753
  /**
1420
2754
  * Blockchain network where the rule will apply
1421
2755
  */
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';
2756
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
1423
2757
  /**
1424
2758
  * OAuth credentials associated with the rule
1425
2759
  */
1426
2760
  oauthCredentialsId?: string | null;
2761
+ /**
2762
+ * The lifetime of the reward
2763
+ */
2764
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
1427
2765
  /**
1428
2766
  * Type of reward issued by the rule
1429
2767
  */
1430
- rewardType?: 'points' | 'multiplier';
2768
+ rewardType?: 'points' | 'multiplier' | 'badge';
2769
+ /**
2770
+ * URL of the Shopify store
2771
+ */
2772
+ shopifyStoreUrl?: string | null;
1431
2773
  /**
1432
- * Identifier for associated subscriptions
2774
+ * Whether to show this rule before the start time
1433
2775
  */
1434
- subscriptionIdentifier?: string | null;
2776
+ showBeforeStart?: boolean;
2777
+ /**
2778
+ * Optional stratus subscription id for the rule
2779
+ */
2780
+ subscriptionId?: string | null;
1435
2781
  }
1436
2782
  export declare namespace RuleCreateParams {
1437
2783
  /**
1438
2784
  * Additional metadata for the loyalty rule
1439
2785
  */
1440
2786
  interface Metadata {
2787
+ /**
2788
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
2789
+ * any rule completions count as check-in.
2790
+ */
2791
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
2792
+ /**
2793
+ * Number of tokens per batch.
2794
+ */
2795
+ batchSize?: number | null;
1441
2796
  /**
1442
2797
  * Text displayed on the action button.
1443
2798
  */
@@ -1457,7 +2812,7 @@ export declare namespace RuleCreateParams {
1457
2812
  /**
1458
2813
  * Text to check in the Twitter post, username, or bio.
1459
2814
  */
1460
- checkText?: string | null;
2815
+ checkText?: string | Array<string> | null;
1461
2816
  /**
1462
2817
  * Array of collections associated with the rule.
1463
2818
  */
@@ -1465,7 +2820,13 @@ export declare namespace RuleCreateParams {
1465
2820
  /**
1466
2821
  * Conditions for completing the profile.
1467
2822
  */
1468
- completeProfileConditions?: Record<string, boolean> | null;
2823
+ completeProfileConditions?: {
2824
+ [key: string]: boolean;
2825
+ } | null;
2826
+ /**
2827
+ * Description of the external rule condition (only for external rules)
2828
+ */
2829
+ conditionDescription?: string;
1469
2830
  /**
1470
2831
  * Object containing details for the call-to-action.
1471
2832
  */
@@ -1474,6 +2835,10 @@ export declare namespace RuleCreateParams {
1474
2835
  * API key for custom rewards integration.
1475
2836
  */
1476
2837
  customRewardsApiKey?: string;
2838
+ /**
2839
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2840
+ */
2841
+ directRpc?: boolean;
1477
2842
  /**
1478
2843
  * Array of Discord servers, channels, and roles to join.
1479
2844
  */
@@ -1494,6 +2859,10 @@ export declare namespace RuleCreateParams {
1494
2859
  * Flag indicating whether the verified multiplier is enabled.
1495
2860
  */
1496
2861
  enableVerifiedMultiplier?: boolean;
2862
+ /**
2863
+ * Type of ERC20 token for the loyalty rule.
2864
+ */
2865
+ erc20Type?: 'erc20' | 'native';
1497
2866
  /**
1498
2867
  * Fill source of the order for the token sale
1499
2868
  */
@@ -1502,6 +2871,14 @@ export declare namespace RuleCreateParams {
1502
2871
  * Percentage reward given to a user for their first referral.
1503
2872
  */
1504
2873
  firstReferralReward?: number | null;
2874
+ /**
2875
+ * Name of the GitHub branch to check for PR merge.
2876
+ */
2877
+ githubBranchName?: string | null;
2878
+ /**
2879
+ * URL of the GitHub repository to check for star.
2880
+ */
2881
+ githubRepoUrl?: string | null;
1505
2882
  /**
1506
2883
  * Flag indicating whether the fill source is included.
1507
2884
  */
@@ -1510,10 +2887,6 @@ export declare namespace RuleCreateParams {
1510
2887
  * Indicates if the item has never been sold.
1511
2888
  */
1512
2889
  hasNeverSold?: boolean;
1513
- /**
1514
- * Flag indicating whether the order source is included.
1515
- */
1516
- hasOrderSource?: boolean;
1517
2890
  /**
1518
2891
  * Indicates if the full royalty has been paid for items.
1519
2892
  */
@@ -1530,10 +2903,18 @@ export declare namespace RuleCreateParams {
1530
2903
  * URL of the image associated with the rule.
1531
2904
  */
1532
2905
  imageUrl?: string | null;
2906
+ /**
2907
+ * If enabled, the first transaction done on the platform will complete this rule
2908
+ */
2909
+ isCheckInOnEveryTxn?: boolean;
1533
2910
  /**
1534
2911
  * Indicates if the multiplier has been applied to rewards.
1535
2912
  */
1536
2913
  isMultiplierApplied?: boolean;
2914
+ /**
2915
+ * Flag indicating if the rule is restricted to new users.
2916
+ */
2917
+ isRestrictedToNewUsers?: boolean;
1537
2918
  /**
1538
2919
  * Flag indicating if rewards are applied retroactively.
1539
2920
  */
@@ -1546,62 +2927,123 @@ export declare namespace RuleCreateParams {
1546
2927
  * Optional link associated with the metadata.
1547
2928
  */
1548
2929
  link?: string | null;
2930
+ /**
2931
+ * Liquidity pool details.
2932
+ */
2933
+ liquidity?: Metadata.Liquidity;
1549
2934
  /**
1550
2935
  * Maximum quantity constraint for token holding.
1551
2936
  */
1552
- maxQty?: number | null;
2937
+ maxQty?: number | null;
2938
+ /**
2939
+ * Minimum quantity constraint for token holding.
2940
+ */
2941
+ minQty?: number | null;
2942
+ /**
2943
+ * Array of loyalty currency IDs used for multipliers.
2944
+ */
2945
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
2946
+ /**
2947
+ * Flag indicating whether to include only known users.
2948
+ */
2949
+ onlyKnownUsers?: boolean;
2950
+ /**
2951
+ * Flag indicating whether to include only native tokens.
2952
+ */
2953
+ onlyNative?: boolean;
2954
+ /**
2955
+ * Flag indicating whether to include only non-listed items.
2956
+ */
2957
+ onlyNonListed?: boolean;
2958
+ /**
2959
+ * Indicates if only existing users are rewarded.
2960
+ */
2961
+ onlyRewardExistingUser?: boolean;
2962
+ /**
2963
+ * give points for only one token ownership per contract
2964
+ */
2965
+ onlyRewardSingleTokenOwnership?: boolean | null;
2966
+ /**
2967
+ * Promotional code associated with the rule.
2968
+ */
2969
+ promoCode?: string;
2970
+ /**
2971
+ * URL of the CSV file containing promo codes.
2972
+ */
2973
+ promoCodeCsvUrl?: string;
2974
+ /**
2975
+ * Numbers of the promotional code to be generated.
2976
+ */
2977
+ promoCodeLength?: number | null;
2978
+ /**
2979
+ * Type of the promotional code.
2980
+ */
2981
+ promoCodeType?: 'code' | 'csv' | 'generate';
2982
+ /**
2983
+ * Array defining ranges and corresponding rewards.
2984
+ */
2985
+ range?: Array<Metadata.Range>;
2986
+ /**
2987
+ * ID of the Reddit post.
2988
+ */
2989
+ redditPostId?: string | null;
2990
+ /**
2991
+ * Object defining referral requirements.
2992
+ */
2993
+ referralRequirements?: Metadata.ReferralRequirements | null;
1553
2994
  /**
1554
- * Minimum quantity constraint for token holding.
2995
+ * Lump sum reward given to a referrer.
1555
2996
  */
1556
- minQty?: number | null;
2997
+ referrerReward?: number | null;
1557
2998
  /**
1558
- * Array of loyalty currency IDs used for multipliers.
2999
+ * Loyalty currency ID of the referrer reward.
1559
3000
  */
1560
- multiplierLoyaltyCurrencyIds?: Array<string> | null;
3001
+ referrerRewardLoyaltyCurrencyId?: string | null;
1561
3002
  /**
1562
- * Flag indicating whether to include only known users.
3003
+ * Flag indicating if the post link is required.
1563
3004
  */
1564
- onlyKnownUsers?: boolean;
3005
+ requirePostLink?: boolean | null;
1565
3006
  /**
1566
- * Flag indicating whether to include only native tokens.
3007
+ * Flag indicating if media metadata is required.
1567
3008
  */
1568
- onlyNative?: boolean;
3009
+ requirePostMediaLink?: boolean | null;
1569
3010
  /**
1570
- * Flag indicating whether to include only non-listed items.
3011
+ * Flag indicating if the rule can also reward badges per range.
1571
3012
  */
1572
- onlyNonListed?: boolean;
3013
+ rewardBadgePerRange?: boolean;
1573
3014
  /**
1574
- * Indicates if only existing users are rewarded.
3015
+ * Flag indicating if the reward is rewarded by batch.
1575
3016
  */
1576
- onlyRewardExistingUser?: boolean;
3017
+ rewardByBatch?: boolean | null;
1577
3018
  /**
1578
- * give points for only one token ownership per contract
3019
+ * Criteria to evaluate the reward.
1579
3020
  */
1580
- onlyRewardSingleTokenOwnership?: boolean | null;
3021
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
1581
3022
  /**
1582
- * Order source of the order for the token sale
3023
+ * Flag indicating if the reward is rewarded per action.
1583
3024
  */
1584
- orderSource?: string;
3025
+ rewardPerAction?: boolean | null;
1585
3026
  /**
1586
- * Promotional code associated with the rule.
3027
+ * Flag indicating if rewards are given per impression.
1587
3028
  */
1588
- promoCode?: string;
3029
+ rewardPerImpression?: boolean | null;
1589
3030
  /**
1590
- * Array defining ranges and corresponding rewards.
3031
+ * Flag indicating if the rule should reward based on value of traded tokens
3032
+ * instead of count.
1591
3033
  */
1592
- range?: Array<Metadata.Range>;
3034
+ rewardPerValue?: boolean;
1593
3035
  /**
1594
- * Object defining referral requirements.
3036
+ * Flag indicating if the rule should reward quality posts.
1595
3037
  */
1596
- referralRequirements?: Metadata.ReferralRequirements | null;
3038
+ rewardQualityPosts?: boolean;
1597
3039
  /**
1598
- * Lump sum reward given to a referrer.
3040
+ * Wallet address of the user can only be used if userId is not provided
1599
3041
  */
1600
- referrerReward?: number | null;
3042
+ royaltyAddress?: string;
1601
3043
  /**
1602
- * Flag indicating if rewards are given per impression.
3044
+ * Royalty percentage of the item.
1603
3045
  */
1604
- rewardPerImpression?: boolean | null;
3046
+ royaltyPercentage?: number;
1605
3047
  /**
1606
3048
  * Currency associated with sales.
1607
3049
  */
@@ -1625,7 +3067,7 @@ export declare namespace RuleCreateParams {
1625
3067
  /**
1626
3068
  * Social media platform associated with the rule.
1627
3069
  */
1628
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
3070
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
1629
3071
  /**
1630
3072
  * URL of the social platform's logo.
1631
3073
  */
@@ -1634,10 +3076,18 @@ export declare namespace RuleCreateParams {
1634
3076
  * Name of the social platform.
1635
3077
  */
1636
3078
  socialPlatformName?: string | null;
3079
+ /**
3080
+ * ID of the Steam app.
3081
+ */
3082
+ steamAppId?: string | null;
1637
3083
  /**
1638
3084
  * Array of streak milestones and corresponding rewards.
1639
3085
  */
1640
3086
  streakArray?: Array<Metadata.StreakArray> | null;
3087
+ /**
3088
+ * Metadata for swap loyalty rules
3089
+ */
3090
+ swap?: Metadata.Swap;
1641
3091
  /**
1642
3092
  * ID of the Telegram channel.
1643
3093
  */
@@ -1650,6 +3100,11 @@ export declare namespace RuleCreateParams {
1650
3100
  * Flag indicating if all contracts are tracked.
1651
3101
  */
1652
3102
  trackAllContracts?: boolean | null;
3103
+ /**
3104
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3105
+ * completed once the progress is 100%.
3106
+ */
3107
+ trackProgress?: boolean | null;
1653
3108
  /**
1654
3109
  * URL of the associated Twitter account.
1655
3110
  */
@@ -1685,7 +3140,15 @@ export declare namespace RuleCreateParams {
1685
3140
  /**
1686
3141
  * Type of wallet associated with the rule.
1687
3142
  */
1688
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
3143
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
3144
+ /**
3145
+ * ID of the Youtube channel.
3146
+ */
3147
+ youtubeChannelId?: string | null;
3148
+ /**
3149
+ * ID of the Youtube video.
3150
+ */
3151
+ youtubeVideoId?: string | null;
1689
3152
  }
1690
3153
  namespace Metadata {
1691
3154
  interface Collection {
@@ -1700,7 +3163,7 @@ export declare namespace RuleCreateParams {
1700
3163
  /**
1701
3164
  * Blockchain network of the collection.
1702
3165
  */
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';
3166
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
1704
3167
  }
1705
3168
  /**
1706
3169
  * Object containing details for the call-to-action.
@@ -1765,6 +3228,49 @@ export declare namespace RuleCreateParams {
1765
3228
  */
1766
3229
  id: string;
1767
3230
  }
3231
+ /**
3232
+ * Liquidity pool details.
3233
+ */
3234
+ interface Liquidity {
3235
+ /**
3236
+ * Calculation type of the liquidity pool.
3237
+ */
3238
+ calculationType?: 'fixed' | 'custom';
3239
+ /**
3240
+ * Custom function to calculate the the reward amount based on the liquidity
3241
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3242
+ * USD.
3243
+ */
3244
+ customFunction?: string;
3245
+ /**
3246
+ * Liquidity provided per day in USD
3247
+ */
3248
+ liquidityPerDay?: number;
3249
+ /**
3250
+ * Blockchain network of the liquidity pool.
3251
+ */
3252
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
3253
+ /**
3254
+ * Indicates if only in-range liquidity is rewarded.
3255
+ */
3256
+ onlyRewardInRangeLiquidity?: boolean;
3257
+ /**
3258
+ * Array of liquidity pools associated with the rule.
3259
+ */
3260
+ pools?: Array<Liquidity.Pool>;
3261
+ /**
3262
+ * Protocol of the liquidity pool.
3263
+ */
3264
+ protocol?: string;
3265
+ }
3266
+ namespace Liquidity {
3267
+ interface Pool {
3268
+ /**
3269
+ * Unique identifier of the liquidity pool.
3270
+ */
3271
+ id: string;
3272
+ }
3273
+ }
1768
3274
  interface Range {
1769
3275
  /**
1770
3276
  * Reward amount for this range.
@@ -1778,6 +3284,14 @@ export declare namespace RuleCreateParams {
1778
3284
  * Start value of the range.
1779
3285
  */
1780
3286
  startRange: number;
3287
+ /**
3288
+ * ID of the loyalty badge for this range.
3289
+ */
3290
+ loyaltyBadgeId?: string;
3291
+ /**
3292
+ * Amount of the loyalty multiplier for this range.
3293
+ */
3294
+ loyaltyMultiplierAmount?: number;
1781
3295
  }
1782
3296
  /**
1783
3297
  * Object defining referral requirements.
@@ -1821,18 +3335,14 @@ export declare namespace RuleCreateParams {
1821
3335
  * Object containing details of the associated smart contract.
1822
3336
  */
1823
3337
  interface SmartContract {
1824
- /**
1825
- * ABI of the smart contract.
1826
- */
1827
- abi?: string | null;
1828
3338
  /**
1829
3339
  * Mapping of addresses for the smart contract.
1830
3340
  */
1831
3341
  addressMapping?: string | null;
1832
3342
  /**
1833
- * Array of bonus details applied to the rule.
3343
+ * Object containing details of the amount multiplier from the event.
1834
3344
  */
1835
- bonus?: Array<SmartContract.Bonus> | null;
3345
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1836
3346
  /**
1837
3347
  * ID of the smart contract.
1838
3348
  */
@@ -1841,58 +3351,28 @@ export declare namespace RuleCreateParams {
1841
3351
  * Criteria to evaluate the smart contract event.
1842
3352
  */
1843
3353
  criteria?: 'everyEvent' | 'byParameter' | null;
1844
- /**
1845
- * Time range applied to the rule.
1846
- */
1847
- customRange?: SmartContract.CustomRange | null;
1848
3354
  /**
1849
3355
  * Event emitted by the smart contract.
1850
3356
  */
1851
3357
  event?: string | null;
1852
- /**
1853
- * Maximum value allowed for the parameter.
1854
- */
1855
- max?: number | null;
1856
3358
  /**
1857
3359
  * Array of parameters for the smart contract.
1858
3360
  */
1859
3361
  params?: Array<SmartContract.Param> | null;
1860
3362
  /**
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.
3363
+ * Type of the smart contract interaction.
1870
3364
  */
1871
- withMax?: boolean | null;
3365
+ type?: 'function' | 'event' | null;
1872
3366
  }
1873
3367
  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
3368
  /**
1885
- * Time range applied to the rule.
3369
+ * Object containing details of the amount multiplier from the event.
1886
3370
  */
1887
- interface CustomRange {
1888
- /**
1889
- * End time of the custom range.
1890
- */
1891
- endsAt?: string | null;
3371
+ interface AmountMultiplier {
1892
3372
  /**
1893
- * Start time of the custom range.
3373
+ * Mapping of the value for the smart contract.
1894
3374
  */
1895
- startsAt?: string | null;
3375
+ valueMapping?: string | null;
1896
3376
  }
1897
3377
  interface Param {
1898
3378
  /**
@@ -1929,6 +3409,24 @@ export declare namespace RuleCreateParams {
1929
3409
  */
1930
3410
  streakMilestone: number;
1931
3411
  }
3412
+ /**
3413
+ * Metadata for swap loyalty rules
3414
+ */
3415
+ interface Swap {
3416
+ provider?: 'any' | 'relay' | 'lifi';
3417
+ relayReferrerId?: string;
3418
+ requireCrossChainSwap?: boolean;
3419
+ swappedToChain?: 'any' | number | string;
3420
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3421
+ tokenMode?: 'any' | 'specific';
3422
+ trackTokenAmount?: boolean;
3423
+ }
3424
+ namespace Swap {
3425
+ interface SwappedToToken {
3426
+ address: string;
3427
+ chainId: string;
3428
+ }
3429
+ }
1932
3430
  }
1933
3431
  interface Collection {
1934
3432
  /**
@@ -1938,7 +3436,11 @@ export declare namespace RuleCreateParams {
1938
3436
  /**
1939
3437
  * Blockchain network for the collection
1940
3438
  */
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';
3439
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
3440
+ /**
3441
+ * Symbol of the collection.
3442
+ */
3443
+ symbol?: string;
1942
3444
  }
1943
3445
  }
1944
3446
  export interface RuleUpdateParams {
@@ -1954,10 +3456,14 @@ export interface RuleUpdateParams {
1954
3456
  * Name of the loyalty rule
1955
3457
  */
1956
3458
  name: string;
3459
+ /**
3460
+ * The type of claim for the reward
3461
+ */
3462
+ claimType?: 'manual' | 'auto' | null;
1957
3463
  /**
1958
3464
  * Blockchain address of the associated collection
1959
3465
  */
1960
- collectionAddress?: string;
3466
+ collectionAddress?: string | null;
1961
3467
  /**
1962
3468
  * List of associated collections
1963
3469
  */
@@ -1982,10 +3488,18 @@ export interface RuleUpdateParams {
1982
3488
  * Effective start time of the rule
1983
3489
  */
1984
3490
  effectiveStartTime?: string | null;
3491
+ /**
3492
+ * ID of the external integration
3493
+ */
3494
+ externalIntegrationId?: string | null;
1985
3495
  /**
1986
3496
  * Frequency of the rule execution
1987
3497
  */
1988
3498
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
3499
+ /**
3500
+ * Optional stratus function id for the rule
3501
+ */
3502
+ functionId?: string | null;
1989
3503
  /**
1990
3504
  * Whether to hide this rule in the user interface
1991
3505
  */
@@ -1993,7 +3507,7 @@ export interface RuleUpdateParams {
1993
3507
  /**
1994
3508
  * Time interval for recurring rule execution
1995
3509
  */
1996
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
3510
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1997
3511
  /**
1998
3512
  * Whether this rule is required for participation
1999
3513
  */
@@ -2002,6 +3516,16 @@ export interface RuleUpdateParams {
2002
3516
  * ID of the rule group section to associate with the rule
2003
3517
  */
2004
3518
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
3519
+ /**
3520
+ * The interval for the max amount. Available for the smart contract and external
3521
+ * rules.
3522
+ */
3523
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
3524
+ /**
3525
+ * The maximum amount of points a user can earn per interval. Available for the
3526
+ * smart contract and external rules.
3527
+ */
3528
+ maxAmountPerInterval?: number | null;
2005
3529
  /**
2006
3530
  * URL of the media to be displayed
2007
3531
  */
@@ -2013,23 +3537,35 @@ export interface RuleUpdateParams {
2013
3537
  /**
2014
3538
  * Blockchain network where the rule will apply
2015
3539
  */
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';
3540
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
2017
3541
  /**
2018
3542
  * ID for associated OAuth credentials
2019
3543
  */
2020
3544
  oauthCredentialsId?: string | null;
3545
+ /**
3546
+ * The lifetime of the reward
3547
+ */
3548
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
2021
3549
  /**
2022
3550
  * Type of reward issued by this rule
2023
3551
  */
2024
- rewardType?: 'points' | 'multiplier';
3552
+ rewardType?: 'points' | 'multiplier' | 'badge';
3553
+ /**
3554
+ * URL of the Shopify store
3555
+ */
3556
+ shopifyStoreUrl?: string | null;
3557
+ /**
3558
+ * Whether to show this rule before the start time
3559
+ */
3560
+ showBeforeStart?: boolean;
2025
3561
  /**
2026
3562
  * Start time for the loyalty rule
2027
3563
  */
2028
3564
  startTime?: string | null;
2029
3565
  /**
2030
- * Optional subscription identifier for the rule
3566
+ * Optional stratus subscription id for the rule
2031
3567
  */
2032
- subscriptionIdentifier?: string | null;
3568
+ subscriptionId?: string | null;
2033
3569
  }
2034
3570
  export declare namespace RuleUpdateParams {
2035
3571
  interface Collection {
@@ -2040,12 +3576,25 @@ export declare namespace RuleUpdateParams {
2040
3576
  /**
2041
3577
  * Blockchain network for the collection
2042
3578
  */
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';
3579
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
3580
+ /**
3581
+ * Symbol of the collection.
3582
+ */
3583
+ symbol?: string;
2044
3584
  }
2045
3585
  /**
2046
3586
  * Additional metadata for the loyalty rule
2047
3587
  */
2048
3588
  interface Metadata {
3589
+ /**
3590
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
3591
+ * any rule completions count as check-in.
3592
+ */
3593
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
3594
+ /**
3595
+ * Number of tokens per batch.
3596
+ */
3597
+ batchSize?: number | null;
2049
3598
  /**
2050
3599
  * Text displayed on the action button.
2051
3600
  */
@@ -2065,7 +3614,7 @@ export declare namespace RuleUpdateParams {
2065
3614
  /**
2066
3615
  * Text to check in the Twitter post, username, or bio.
2067
3616
  */
2068
- checkText?: string | null;
3617
+ checkText?: string | Array<string> | null;
2069
3618
  /**
2070
3619
  * Array of collections associated with the rule.
2071
3620
  */
@@ -2073,7 +3622,13 @@ export declare namespace RuleUpdateParams {
2073
3622
  /**
2074
3623
  * Conditions for completing the profile.
2075
3624
  */
2076
- completeProfileConditions?: Record<string, boolean> | null;
3625
+ completeProfileConditions?: {
3626
+ [key: string]: boolean;
3627
+ } | null;
3628
+ /**
3629
+ * Description of the external rule condition (only for external rules)
3630
+ */
3631
+ conditionDescription?: string;
2077
3632
  /**
2078
3633
  * Object containing details for the call-to-action.
2079
3634
  */
@@ -2082,6 +3637,10 @@ export declare namespace RuleUpdateParams {
2082
3637
  * API key for custom rewards integration.
2083
3638
  */
2084
3639
  customRewardsApiKey?: string;
3640
+ /**
3641
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
3642
+ */
3643
+ directRpc?: boolean;
2085
3644
  /**
2086
3645
  * Array of Discord servers, channels, and roles to join.
2087
3646
  */
@@ -2102,6 +3661,10 @@ export declare namespace RuleUpdateParams {
2102
3661
  * Flag indicating whether the verified multiplier is enabled.
2103
3662
  */
2104
3663
  enableVerifiedMultiplier?: boolean;
3664
+ /**
3665
+ * Type of ERC20 token for the loyalty rule.
3666
+ */
3667
+ erc20Type?: 'erc20' | 'native';
2105
3668
  /**
2106
3669
  * Fill source of the order for the token sale
2107
3670
  */
@@ -2110,6 +3673,14 @@ export declare namespace RuleUpdateParams {
2110
3673
  * Percentage reward given to a user for their first referral.
2111
3674
  */
2112
3675
  firstReferralReward?: number | null;
3676
+ /**
3677
+ * Name of the GitHub branch to check for PR merge.
3678
+ */
3679
+ githubBranchName?: string | null;
3680
+ /**
3681
+ * URL of the GitHub repository to check for star.
3682
+ */
3683
+ githubRepoUrl?: string | null;
2113
3684
  /**
2114
3685
  * Flag indicating whether the fill source is included.
2115
3686
  */
@@ -2118,10 +3689,6 @@ export declare namespace RuleUpdateParams {
2118
3689
  * Indicates if the item has never been sold.
2119
3690
  */
2120
3691
  hasNeverSold?: boolean;
2121
- /**
2122
- * Flag indicating whether the order source is included.
2123
- */
2124
- hasOrderSource?: boolean;
2125
3692
  /**
2126
3693
  * Indicates if the full royalty has been paid for items.
2127
3694
  */
@@ -2138,10 +3705,18 @@ export declare namespace RuleUpdateParams {
2138
3705
  * URL of the image associated with the rule.
2139
3706
  */
2140
3707
  imageUrl?: string | null;
3708
+ /**
3709
+ * If enabled, the first transaction done on the platform will complete this rule
3710
+ */
3711
+ isCheckInOnEveryTxn?: boolean;
2141
3712
  /**
2142
3713
  * Indicates if the multiplier has been applied to rewards.
2143
3714
  */
2144
3715
  isMultiplierApplied?: boolean;
3716
+ /**
3717
+ * Flag indicating if the rule is restricted to new users.
3718
+ */
3719
+ isRestrictedToNewUsers?: boolean;
2145
3720
  /**
2146
3721
  * Flag indicating if rewards are applied retroactively.
2147
3722
  */
@@ -2154,6 +3729,10 @@ export declare namespace RuleUpdateParams {
2154
3729
  * Optional link associated with the metadata.
2155
3730
  */
2156
3731
  link?: string | null;
3732
+ /**
3733
+ * Liquidity pool details.
3734
+ */
3735
+ liquidity?: Metadata.Liquidity;
2157
3736
  /**
2158
3737
  * Maximum quantity constraint for token holding.
2159
3738
  */
@@ -2186,18 +3765,30 @@ export declare namespace RuleUpdateParams {
2186
3765
  * give points for only one token ownership per contract
2187
3766
  */
2188
3767
  onlyRewardSingleTokenOwnership?: boolean | null;
2189
- /**
2190
- * Order source of the order for the token sale
2191
- */
2192
- orderSource?: string;
2193
3768
  /**
2194
3769
  * Promotional code associated with the rule.
2195
3770
  */
2196
3771
  promoCode?: string;
3772
+ /**
3773
+ * URL of the CSV file containing promo codes.
3774
+ */
3775
+ promoCodeCsvUrl?: string;
3776
+ /**
3777
+ * Numbers of the promotional code to be generated.
3778
+ */
3779
+ promoCodeLength?: number | null;
3780
+ /**
3781
+ * Type of the promotional code.
3782
+ */
3783
+ promoCodeType?: 'code' | 'csv' | 'generate';
2197
3784
  /**
2198
3785
  * Array defining ranges and corresponding rewards.
2199
3786
  */
2200
3787
  range?: Array<Metadata.Range>;
3788
+ /**
3789
+ * ID of the Reddit post.
3790
+ */
3791
+ redditPostId?: string | null;
2201
3792
  /**
2202
3793
  * Object defining referral requirements.
2203
3794
  */
@@ -2206,10 +3797,55 @@ export declare namespace RuleUpdateParams {
2206
3797
  * Lump sum reward given to a referrer.
2207
3798
  */
2208
3799
  referrerReward?: number | null;
3800
+ /**
3801
+ * Loyalty currency ID of the referrer reward.
3802
+ */
3803
+ referrerRewardLoyaltyCurrencyId?: string | null;
3804
+ /**
3805
+ * Flag indicating if the post link is required.
3806
+ */
3807
+ requirePostLink?: boolean | null;
3808
+ /**
3809
+ * Flag indicating if media metadata is required.
3810
+ */
3811
+ requirePostMediaLink?: boolean | null;
3812
+ /**
3813
+ * Flag indicating if the rule can also reward badges per range.
3814
+ */
3815
+ rewardBadgePerRange?: boolean;
3816
+ /**
3817
+ * Flag indicating if the reward is rewarded by batch.
3818
+ */
3819
+ rewardByBatch?: boolean | null;
3820
+ /**
3821
+ * Criteria to evaluate the reward.
3822
+ */
3823
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
3824
+ /**
3825
+ * Flag indicating if the reward is rewarded per action.
3826
+ */
3827
+ rewardPerAction?: boolean | null;
2209
3828
  /**
2210
3829
  * Flag indicating if rewards are given per impression.
2211
3830
  */
2212
3831
  rewardPerImpression?: boolean | null;
3832
+ /**
3833
+ * Flag indicating if the rule should reward based on value of traded tokens
3834
+ * instead of count.
3835
+ */
3836
+ rewardPerValue?: boolean;
3837
+ /**
3838
+ * Flag indicating if the rule should reward quality posts.
3839
+ */
3840
+ rewardQualityPosts?: boolean;
3841
+ /**
3842
+ * Wallet address of the user can only be used if userId is not provided
3843
+ */
3844
+ royaltyAddress?: string;
3845
+ /**
3846
+ * Royalty percentage of the item.
3847
+ */
3848
+ royaltyPercentage?: number;
2213
3849
  /**
2214
3850
  * Currency associated with sales.
2215
3851
  */
@@ -2233,7 +3869,7 @@ export declare namespace RuleUpdateParams {
2233
3869
  /**
2234
3870
  * Social media platform associated with the rule.
2235
3871
  */
2236
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
3872
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
2237
3873
  /**
2238
3874
  * URL of the social platform's logo.
2239
3875
  */
@@ -2242,10 +3878,18 @@ export declare namespace RuleUpdateParams {
2242
3878
  * Name of the social platform.
2243
3879
  */
2244
3880
  socialPlatformName?: string | null;
3881
+ /**
3882
+ * ID of the Steam app.
3883
+ */
3884
+ steamAppId?: string | null;
2245
3885
  /**
2246
3886
  * Array of streak milestones and corresponding rewards.
2247
3887
  */
2248
3888
  streakArray?: Array<Metadata.StreakArray> | null;
3889
+ /**
3890
+ * Metadata for swap loyalty rules
3891
+ */
3892
+ swap?: Metadata.Swap;
2249
3893
  /**
2250
3894
  * ID of the Telegram channel.
2251
3895
  */
@@ -2258,6 +3902,11 @@ export declare namespace RuleUpdateParams {
2258
3902
  * Flag indicating if all contracts are tracked.
2259
3903
  */
2260
3904
  trackAllContracts?: boolean | null;
3905
+ /**
3906
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3907
+ * completed once the progress is 100%.
3908
+ */
3909
+ trackProgress?: boolean | null;
2261
3910
  /**
2262
3911
  * URL of the associated Twitter account.
2263
3912
  */
@@ -2293,7 +3942,15 @@ export declare namespace RuleUpdateParams {
2293
3942
  /**
2294
3943
  * Type of wallet associated with the rule.
2295
3944
  */
2296
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
3945
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
3946
+ /**
3947
+ * ID of the Youtube channel.
3948
+ */
3949
+ youtubeChannelId?: string | null;
3950
+ /**
3951
+ * ID of the Youtube video.
3952
+ */
3953
+ youtubeVideoId?: string | null;
2297
3954
  }
2298
3955
  namespace Metadata {
2299
3956
  interface Collection {
@@ -2308,7 +3965,7 @@ export declare namespace RuleUpdateParams {
2308
3965
  /**
2309
3966
  * Blockchain network of the collection.
2310
3967
  */
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';
3968
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
2312
3969
  }
2313
3970
  /**
2314
3971
  * Object containing details for the call-to-action.
@@ -2373,6 +4030,49 @@ export declare namespace RuleUpdateParams {
2373
4030
  */
2374
4031
  id: string;
2375
4032
  }
4033
+ /**
4034
+ * Liquidity pool details.
4035
+ */
4036
+ interface Liquidity {
4037
+ /**
4038
+ * Calculation type of the liquidity pool.
4039
+ */
4040
+ calculationType?: 'fixed' | 'custom';
4041
+ /**
4042
+ * Custom function to calculate the the reward amount based on the liquidity
4043
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
4044
+ * USD.
4045
+ */
4046
+ customFunction?: string;
4047
+ /**
4048
+ * Liquidity provided per day in USD
4049
+ */
4050
+ liquidityPerDay?: number;
4051
+ /**
4052
+ * Blockchain network of the liquidity pool.
4053
+ */
4054
+ 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' | 'zkverify' | 'polkadot' | 'kusama' | 'flow_cadence';
4055
+ /**
4056
+ * Indicates if only in-range liquidity is rewarded.
4057
+ */
4058
+ onlyRewardInRangeLiquidity?: boolean;
4059
+ /**
4060
+ * Array of liquidity pools associated with the rule.
4061
+ */
4062
+ pools?: Array<Liquidity.Pool>;
4063
+ /**
4064
+ * Protocol of the liquidity pool.
4065
+ */
4066
+ protocol?: string;
4067
+ }
4068
+ namespace Liquidity {
4069
+ interface Pool {
4070
+ /**
4071
+ * Unique identifier of the liquidity pool.
4072
+ */
4073
+ id: string;
4074
+ }
4075
+ }
2376
4076
  interface Range {
2377
4077
  /**
2378
4078
  * Reward amount for this range.
@@ -2386,6 +4086,14 @@ export declare namespace RuleUpdateParams {
2386
4086
  * Start value of the range.
2387
4087
  */
2388
4088
  startRange: number;
4089
+ /**
4090
+ * ID of the loyalty badge for this range.
4091
+ */
4092
+ loyaltyBadgeId?: string;
4093
+ /**
4094
+ * Amount of the loyalty multiplier for this range.
4095
+ */
4096
+ loyaltyMultiplierAmount?: number;
2389
4097
  }
2390
4098
  /**
2391
4099
  * Object defining referral requirements.
@@ -2429,18 +4137,14 @@ export declare namespace RuleUpdateParams {
2429
4137
  * Object containing details of the associated smart contract.
2430
4138
  */
2431
4139
  interface SmartContract {
2432
- /**
2433
- * ABI of the smart contract.
2434
- */
2435
- abi?: string | null;
2436
4140
  /**
2437
4141
  * Mapping of addresses for the smart contract.
2438
4142
  */
2439
4143
  addressMapping?: string | null;
2440
4144
  /**
2441
- * Array of bonus details applied to the rule.
4145
+ * Object containing details of the amount multiplier from the event.
2442
4146
  */
2443
- bonus?: Array<SmartContract.Bonus> | null;
4147
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2444
4148
  /**
2445
4149
  * ID of the smart contract.
2446
4150
  */
@@ -2449,58 +4153,28 @@ export declare namespace RuleUpdateParams {
2449
4153
  * Criteria to evaluate the smart contract event.
2450
4154
  */
2451
4155
  criteria?: 'everyEvent' | 'byParameter' | null;
2452
- /**
2453
- * Time range applied to the rule.
2454
- */
2455
- customRange?: SmartContract.CustomRange | null;
2456
4156
  /**
2457
4157
  * Event emitted by the smart contract.
2458
4158
  */
2459
4159
  event?: string | null;
2460
- /**
2461
- * Maximum value allowed for the parameter.
2462
- */
2463
- max?: number | null;
2464
4160
  /**
2465
4161
  * Array of parameters for the smart contract.
2466
4162
  */
2467
4163
  params?: Array<SmartContract.Param> | null;
2468
4164
  /**
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.
4165
+ * Type of the smart contract interaction.
2478
4166
  */
2479
- withMax?: boolean | null;
4167
+ type?: 'function' | 'event' | null;
2480
4168
  }
2481
4169
  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
4170
  /**
2493
- * Time range applied to the rule.
4171
+ * Object containing details of the amount multiplier from the event.
2494
4172
  */
2495
- interface CustomRange {
2496
- /**
2497
- * End time of the custom range.
2498
- */
2499
- endsAt?: string | null;
4173
+ interface AmountMultiplier {
2500
4174
  /**
2501
- * Start time of the custom range.
4175
+ * Mapping of the value for the smart contract.
2502
4176
  */
2503
- startsAt?: string | null;
4177
+ valueMapping?: string | null;
2504
4178
  }
2505
4179
  interface Param {
2506
4180
  /**
@@ -2537,15 +4211,55 @@ export declare namespace RuleUpdateParams {
2537
4211
  */
2538
4212
  streakMilestone: number;
2539
4213
  }
4214
+ /**
4215
+ * Metadata for swap loyalty rules
4216
+ */
4217
+ interface Swap {
4218
+ provider?: 'any' | 'relay' | 'lifi';
4219
+ relayReferrerId?: string;
4220
+ requireCrossChainSwap?: boolean;
4221
+ swappedToChain?: 'any' | number | string;
4222
+ swappedToTokens?: Array<Swap.SwappedToToken>;
4223
+ tokenMode?: 'any' | 'specific';
4224
+ trackTokenAmount?: boolean;
4225
+ }
4226
+ namespace Swap {
4227
+ interface SwappedToToken {
4228
+ address: string;
4229
+ chainId: string;
4230
+ }
4231
+ }
2540
4232
  }
2541
4233
  }
2542
4234
  export interface RuleListParams {
4235
+ /**
4236
+ * IDs of the users to filter results by
4237
+ */
4238
+ allotedToUserId?: string | Array<string>;
4239
+ /**
4240
+ * ID of the user group to filter results by
4241
+ */
4242
+ allotedUserGroupId?: string;
2543
4243
  /**
2544
4244
  * Address of the collection to filter by
2545
4245
  */
2546
4246
  collectionAddress?: string;
2547
4247
  /**
2548
- * Maximum number of records to return (max 1000)
4248
+ * Whether to include deleted/archived records
4249
+ */
4250
+ includeDeleted?: boolean | null;
4251
+ /**
4252
+ * If true this will only return active rules, the rules for which the startTime is
4253
+ * in the past and the endTime is in the future
4254
+ */
4255
+ isActive?: 'true' | 'false';
4256
+ /**
4257
+ * If true this will only return special rules, special rules are the rules that
4258
+ * are used for anti sybil as honey pot
4259
+ */
4260
+ isSpecial?: 'true' | 'false';
4261
+ /**
4262
+ * Maximum number of records to return (max 100)
2549
4263
  */
2550
4264
  limit?: number;
2551
4265
  /**
@@ -2569,6 +4283,12 @@ export interface RuleListParams {
2569
4283
  */
2570
4284
  websiteId?: string;
2571
4285
  }
4286
+ export interface RuleDeleteParams {
4287
+ /**
4288
+ * Whether to debit loyalty points
4289
+ */
4290
+ debitLoyaltyPoints?: string;
4291
+ }
2572
4292
  export interface RuleCompleteParams {
2573
4293
  /**
2574
4294
  * Override amount for the reward (rounded to nearest whole number). This will
@@ -2576,13 +4296,25 @@ export interface RuleCompleteParams {
2576
4296
  */
2577
4297
  amount?: number | null;
2578
4298
  /**
2579
- * Link to the comment made by user
4299
+ * Link to the post/comment made by user
4300
+ */
4301
+ contentUrl?: string;
4302
+ /**
4303
+ * Unique key to ensure idempotent requests.
2580
4304
  */
2581
- commentLink?: string;
4305
+ idempotencyKey?: string;
2582
4306
  /**
2583
4307
  * ID of the choice selected by the user
2584
4308
  */
2585
4309
  loyaltyQuestionChoiceId?: string;
4310
+ /**
4311
+ * Value to compare with the range
4312
+ */
4313
+ rangeValue?: number | null;
4314
+ /**
4315
+ * Flag indicating if the chain or required check should be skipped.
4316
+ */
4317
+ skipChainOrRequiredCheck?: boolean;
2586
4318
  /**
2587
4319
  * Unique identifier for the user
2588
4320
  */
@@ -2593,7 +4325,7 @@ export interface RuleCompleteParams {
2593
4325
  verificationCode?: string;
2594
4326
  /**
2595
4327
  * Flag indicating if only verification is required, this will not create a
2596
- * transaction and reward the user
4328
+ * transaction and reward the user.
2597
4329
  */
2598
4330
  verifyOnly?: string;
2599
4331
  /**
@@ -2602,11 +4334,25 @@ export interface RuleCompleteParams {
2602
4334
  walletAddress?: string;
2603
4335
  }
2604
4336
  export interface RuleGetStatusParams {
2605
- organizationId: string;
2606
- websiteId: string;
4337
+ /**
4338
+ * Number of items to return
4339
+ */
4340
+ limit?: number | null;
4341
+ /**
4342
+ * Unique identifier for the loyalty rule[s]
4343
+ */
4344
+ loyaltyRuleId?: string | Array<string>;
4345
+ organizationId?: string;
4346
+ /**
4347
+ * Starting after item
4348
+ */
4349
+ startingAfter?: string;
4350
+ userGroupId?: string;
2607
4351
  userId?: string;
4352
+ walletAddress?: string;
4353
+ websiteId?: string;
2608
4354
  }
2609
4355
  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, };
4356
+ 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
4357
  }
2612
4358
  //# sourceMappingURL=rules.d.ts.map