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

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 +1711 -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 +2730 -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 +302 -62
  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 +2024 -258
  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 +3962 -100
  245. package/src/resources/loyalty/rule-groups.ts +530 -74
  246. package/src/resources/loyalty/rules.ts +3162 -295
  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
  */
@@ -289,17 +429,33 @@ export declare namespace RuleCreateResponse {
289
429
  */
290
430
  onlyRewardSingleTokenOwnership?: boolean | null;
291
431
  /**
292
- * Order source of the order for the token sale
432
+ * Pre-generated text template that will be used to prefill the post content.
293
433
  */
294
- orderSource?: string;
434
+ preGeneratedPostText?: string | null;
295
435
  /**
296
436
  * Promotional code associated with the rule.
297
437
  */
298
438
  promoCode?: string;
439
+ /**
440
+ * URL of the CSV file containing promo codes.
441
+ */
442
+ promoCodeCsvUrl?: string;
443
+ /**
444
+ * Numbers of the promotional code to be generated.
445
+ */
446
+ promoCodeLength?: number | null;
447
+ /**
448
+ * Type of the promotional code.
449
+ */
450
+ promoCodeType?: 'code' | 'csv' | 'generate';
299
451
  /**
300
452
  * Array defining ranges and corresponding rewards.
301
453
  */
302
454
  range?: Array<Metadata.Range>;
455
+ /**
456
+ * ID of the Reddit post.
457
+ */
458
+ redditPostId?: string | null;
303
459
  /**
304
460
  * Object defining referral requirements.
305
461
  */
@@ -308,10 +464,55 @@ export declare namespace RuleCreateResponse {
308
464
  * Lump sum reward given to a referrer.
309
465
  */
310
466
  referrerReward?: number | null;
467
+ /**
468
+ * Loyalty currency ID of the referrer reward.
469
+ */
470
+ referrerRewardLoyaltyCurrencyId?: string | null;
471
+ /**
472
+ * Flag indicating if the post link is required.
473
+ */
474
+ requirePostLink?: boolean | null;
475
+ /**
476
+ * Flag indicating if media metadata is required.
477
+ */
478
+ requirePostMediaLink?: boolean | null;
479
+ /**
480
+ * Flag indicating if the rule can also reward badges per range.
481
+ */
482
+ rewardBadgePerRange?: boolean;
483
+ /**
484
+ * Flag indicating if the reward is rewarded by batch.
485
+ */
486
+ rewardByBatch?: boolean | null;
487
+ /**
488
+ * Criteria to evaluate the reward.
489
+ */
490
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
491
+ /**
492
+ * Flag indicating if the reward is rewarded per action.
493
+ */
494
+ rewardPerAction?: boolean | null;
311
495
  /**
312
496
  * Flag indicating if rewards are given per impression.
313
497
  */
314
498
  rewardPerImpression?: boolean | null;
499
+ /**
500
+ * Flag indicating if the rule should reward based on value of traded tokens
501
+ * instead of count.
502
+ */
503
+ rewardPerValue?: boolean;
504
+ /**
505
+ * Flag indicating if the rule should reward quality posts.
506
+ */
507
+ rewardQualityPosts?: boolean;
508
+ /**
509
+ * Wallet address of the user can only be used if userId is not provided
510
+ */
511
+ royaltyAddress?: string;
512
+ /**
513
+ * Royalty percentage of the item.
514
+ */
515
+ royaltyPercentage?: number;
315
516
  /**
316
517
  * Currency associated with sales.
317
518
  */
@@ -335,7 +536,7 @@ export declare namespace RuleCreateResponse {
335
536
  /**
336
537
  * Social media platform associated with the rule.
337
538
  */
338
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
539
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
339
540
  /**
340
541
  * URL of the social platform's logo.
341
542
  */
@@ -344,10 +545,18 @@ export declare namespace RuleCreateResponse {
344
545
  * Name of the social platform.
345
546
  */
346
547
  socialPlatformName?: string | null;
548
+ /**
549
+ * ID of the Steam app.
550
+ */
551
+ steamAppId?: string | null;
347
552
  /**
348
553
  * Array of streak milestones and corresponding rewards.
349
554
  */
350
555
  streakArray?: Array<Metadata.StreakArray> | null;
556
+ /**
557
+ * Metadata for swap loyalty rules
558
+ */
559
+ swap?: Metadata.Swap;
351
560
  /**
352
561
  * ID of the Telegram channel.
353
562
  */
@@ -360,6 +569,11 @@ export declare namespace RuleCreateResponse {
360
569
  * Flag indicating if all contracts are tracked.
361
570
  */
362
571
  trackAllContracts?: boolean | null;
572
+ /**
573
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
574
+ * completed once the progress is 100%.
575
+ */
576
+ trackProgress?: boolean | null;
363
577
  /**
364
578
  * URL of the associated Twitter account.
365
579
  */
@@ -395,7 +609,15 @@ export declare namespace RuleCreateResponse {
395
609
  /**
396
610
  * Type of wallet associated with the rule.
397
611
  */
398
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
612
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
613
+ /**
614
+ * ID of the Youtube channel.
615
+ */
616
+ youtubeChannelId?: string | null;
617
+ /**
618
+ * ID of the Youtube video.
619
+ */
620
+ youtubeVideoId?: string | null;
399
621
  }
400
622
  namespace Metadata {
401
623
  interface Collection {
@@ -410,7 +632,7 @@ export declare namespace RuleCreateResponse {
410
632
  /**
411
633
  * Blockchain network of the collection.
412
634
  */
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';
635
+ 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
636
  }
415
637
  /**
416
638
  * Object containing details for the call-to-action.
@@ -475,6 +697,49 @@ export declare namespace RuleCreateResponse {
475
697
  */
476
698
  id: string;
477
699
  }
700
+ /**
701
+ * Liquidity pool details.
702
+ */
703
+ interface Liquidity {
704
+ /**
705
+ * Calculation type of the liquidity pool.
706
+ */
707
+ calculationType?: 'fixed' | 'custom';
708
+ /**
709
+ * Custom function to calculate the the reward amount based on the liquidity
710
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
711
+ * USD.
712
+ */
713
+ customFunction?: string;
714
+ /**
715
+ * Liquidity provided per day in USD
716
+ */
717
+ liquidityPerDay?: number;
718
+ /**
719
+ * Blockchain network of the liquidity pool.
720
+ */
721
+ 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';
722
+ /**
723
+ * Indicates if only in-range liquidity is rewarded.
724
+ */
725
+ onlyRewardInRangeLiquidity?: boolean;
726
+ /**
727
+ * Array of liquidity pools associated with the rule.
728
+ */
729
+ pools?: Array<Liquidity.Pool>;
730
+ /**
731
+ * Protocol of the liquidity pool.
732
+ */
733
+ protocol?: string;
734
+ }
735
+ namespace Liquidity {
736
+ interface Pool {
737
+ /**
738
+ * Unique identifier of the liquidity pool.
739
+ */
740
+ id: string;
741
+ }
742
+ }
478
743
  interface Range {
479
744
  /**
480
745
  * Reward amount for this range.
@@ -488,6 +753,14 @@ export declare namespace RuleCreateResponse {
488
753
  * Start value of the range.
489
754
  */
490
755
  startRange: number;
756
+ /**
757
+ * ID of the loyalty badge for this range.
758
+ */
759
+ loyaltyBadgeId?: string;
760
+ /**
761
+ * Amount of the loyalty multiplier for this range.
762
+ */
763
+ loyaltyMultiplierAmount?: number;
491
764
  }
492
765
  /**
493
766
  * Object defining referral requirements.
@@ -531,18 +804,14 @@ export declare namespace RuleCreateResponse {
531
804
  * Object containing details of the associated smart contract.
532
805
  */
533
806
  interface SmartContract {
534
- /**
535
- * ABI of the smart contract.
536
- */
537
- abi?: string | null;
538
807
  /**
539
808
  * Mapping of addresses for the smart contract.
540
809
  */
541
810
  addressMapping?: string | null;
542
811
  /**
543
- * Array of bonus details applied to the rule.
812
+ * Object containing details of the amount multiplier from the event.
544
813
  */
545
- bonus?: Array<SmartContract.Bonus> | null;
814
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
546
815
  /**
547
816
  * ID of the smart contract.
548
817
  */
@@ -551,58 +820,28 @@ export declare namespace RuleCreateResponse {
551
820
  * Criteria to evaluate the smart contract event.
552
821
  */
553
822
  criteria?: 'everyEvent' | 'byParameter' | null;
554
- /**
555
- * Time range applied to the rule.
556
- */
557
- customRange?: SmartContract.CustomRange | null;
558
823
  /**
559
824
  * Event emitted by the smart contract.
560
825
  */
561
826
  event?: string | null;
562
- /**
563
- * Maximum value allowed for the parameter.
564
- */
565
- max?: number | null;
566
827
  /**
567
828
  * Array of parameters for the smart contract.
568
829
  */
569
830
  params?: Array<SmartContract.Param> | null;
570
831
  /**
571
- * Flag indicating if a bonus is applied.
572
- */
573
- withBonus?: boolean | null;
574
- /**
575
- * Flag indicating if a custom range is applied.
832
+ * Type of the smart contract interaction.
576
833
  */
577
- withCustomRange?: boolean | null;
578
- /**
579
- * Flag indicating if a maximum limit is applied.
580
- */
581
- withMax?: boolean | null;
834
+ type?: 'function' | 'event' | null;
582
835
  }
583
836
  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
837
  /**
595
- * Time range applied to the rule.
838
+ * Object containing details of the amount multiplier from the event.
596
839
  */
597
- interface CustomRange {
840
+ interface AmountMultiplier {
598
841
  /**
599
- * End time of the custom range.
842
+ * Mapping of the value for the smart contract.
600
843
  */
601
- endsAt?: string | null;
602
- /**
603
- * Start time of the custom range.
604
- */
605
- startsAt?: string | null;
844
+ valueMapping?: string | null;
606
845
  }
607
846
  interface Param {
608
847
  /**
@@ -639,6 +878,24 @@ export declare namespace RuleCreateResponse {
639
878
  */
640
879
  streakMilestone: number;
641
880
  }
881
+ /**
882
+ * Metadata for swap loyalty rules
883
+ */
884
+ interface Swap {
885
+ provider?: 'any' | 'relay' | 'lifi';
886
+ relayReferrerId?: string;
887
+ requireCrossChainSwap?: boolean;
888
+ swappedToChain?: 'any' | number | string;
889
+ swappedToTokens?: Array<Swap.SwappedToToken>;
890
+ tokenMode?: 'any' | 'specific';
891
+ trackTokenAmount?: boolean;
892
+ }
893
+ namespace Swap {
894
+ interface SwappedToToken {
895
+ address: string;
896
+ chainId: string;
897
+ }
898
+ }
642
899
  }
643
900
  interface Collection {
644
901
  /**
@@ -648,7 +905,11 @@ export declare namespace RuleCreateResponse {
648
905
  /**
649
906
  * Blockchain network for the collection
650
907
  */
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';
908
+ 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';
909
+ /**
910
+ * Symbol of the collection.
911
+ */
912
+ symbol?: string;
652
913
  }
653
914
  }
654
915
  export interface RuleUpdateResponse {
@@ -665,10 +926,14 @@ export interface RuleUpdateResponse {
665
926
  * Name of the loyalty rule
666
927
  */
667
928
  name: string;
929
+ /**
930
+ * The type of claim for the reward
931
+ */
932
+ claimType?: 'manual' | 'auto' | null;
668
933
  /**
669
934
  * Blockchain address of the associated collection
670
935
  */
671
- collectionAddress?: string;
936
+ collectionAddress?: string | null;
672
937
  /**
673
938
  * List of associated collections
674
939
  */
@@ -693,10 +958,18 @@ export interface RuleUpdateResponse {
693
958
  * Effective start time of the rule
694
959
  */
695
960
  effectiveStartTime?: string | null;
961
+ /**
962
+ * ID of the external integration
963
+ */
964
+ externalIntegrationId?: string | null;
696
965
  /**
697
966
  * Frequency of the rule execution
698
967
  */
699
968
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
969
+ /**
970
+ * Optional stratus function id for the rule
971
+ */
972
+ functionId?: string | null;
700
973
  /**
701
974
  * Whether to hide this rule in the user interface
702
975
  */
@@ -704,7 +977,7 @@ export interface RuleUpdateResponse {
704
977
  /**
705
978
  * Time interval for recurring rule execution
706
979
  */
707
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
980
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
708
981
  /**
709
982
  * Whether this rule is required for participation
710
983
  */
@@ -713,6 +986,16 @@ export interface RuleUpdateResponse {
713
986
  * ID of the rule group section to associate with the rule
714
987
  */
715
988
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
989
+ /**
990
+ * The interval for the max amount. Available for the smart contract and external
991
+ * rules.
992
+ */
993
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
994
+ /**
995
+ * The maximum amount of points a user can earn per interval. Available for the
996
+ * smart contract and external rules.
997
+ */
998
+ maxAmountPerInterval?: number | null;
716
999
  /**
717
1000
  * URL of the media to be displayed
718
1001
  */
@@ -724,23 +1007,35 @@ export interface RuleUpdateResponse {
724
1007
  /**
725
1008
  * Blockchain network where the rule will apply
726
1009
  */
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';
1010
+ 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
1011
  /**
729
1012
  * ID for associated OAuth credentials
730
1013
  */
731
1014
  oauthCredentialsId?: string | null;
1015
+ /**
1016
+ * The lifetime of the reward
1017
+ */
1018
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
732
1019
  /**
733
1020
  * Type of reward issued by this rule
734
1021
  */
735
- rewardType?: 'points' | 'multiplier';
1022
+ rewardType?: 'points' | 'multiplier' | 'badge';
1023
+ /**
1024
+ * URL of the Shopify store
1025
+ */
1026
+ shopifyStoreUrl?: string | null;
1027
+ /**
1028
+ * Whether to show this rule before the start time
1029
+ */
1030
+ showBeforeStart?: boolean;
736
1031
  /**
737
1032
  * Start time for the loyalty rule
738
1033
  */
739
1034
  startTime?: string | null;
740
1035
  /**
741
- * Optional subscription identifier for the rule
1036
+ * Optional stratus subscription id for the rule
742
1037
  */
743
- subscriptionIdentifier?: string | null;
1038
+ subscriptionId?: string | null;
744
1039
  }
745
1040
  export declare namespace RuleUpdateResponse {
746
1041
  interface Collection {
@@ -751,12 +1046,25 @@ export declare namespace RuleUpdateResponse {
751
1046
  /**
752
1047
  * Blockchain network for the collection
753
1048
  */
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';
1049
+ 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';
1050
+ /**
1051
+ * Symbol of the collection.
1052
+ */
1053
+ symbol?: string;
755
1054
  }
756
1055
  /**
757
1056
  * Additional metadata for the loyalty rule
758
1057
  */
759
1058
  interface Metadata {
1059
+ /**
1060
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
1061
+ * any rule completions count as check-in.
1062
+ */
1063
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
1064
+ /**
1065
+ * Number of tokens per batch.
1066
+ */
1067
+ batchSize?: number | null;
760
1068
  /**
761
1069
  * Text displayed on the action button.
762
1070
  */
@@ -776,7 +1084,7 @@ export declare namespace RuleUpdateResponse {
776
1084
  /**
777
1085
  * Text to check in the Twitter post, username, or bio.
778
1086
  */
779
- checkText?: string | null;
1087
+ checkText?: string | Array<string> | null;
780
1088
  /**
781
1089
  * Array of collections associated with the rule.
782
1090
  */
@@ -784,7 +1092,13 @@ export declare namespace RuleUpdateResponse {
784
1092
  /**
785
1093
  * Conditions for completing the profile.
786
1094
  */
787
- completeProfileConditions?: Record<string, boolean> | null;
1095
+ completeProfileConditions?: {
1096
+ [key: string]: boolean;
1097
+ } | null;
1098
+ /**
1099
+ * Description of the external rule condition (only for external rules)
1100
+ */
1101
+ conditionDescription?: string;
788
1102
  /**
789
1103
  * Object containing details for the call-to-action.
790
1104
  */
@@ -793,6 +1107,10 @@ export declare namespace RuleUpdateResponse {
793
1107
  * API key for custom rewards integration.
794
1108
  */
795
1109
  customRewardsApiKey?: string;
1110
+ /**
1111
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1112
+ */
1113
+ directRpc?: boolean;
796
1114
  /**
797
1115
  * Array of Discord servers, channels, and roles to join.
798
1116
  */
@@ -813,6 +1131,10 @@ export declare namespace RuleUpdateResponse {
813
1131
  * Flag indicating whether the verified multiplier is enabled.
814
1132
  */
815
1133
  enableVerifiedMultiplier?: boolean;
1134
+ /**
1135
+ * Type of ERC20 token for the loyalty rule.
1136
+ */
1137
+ erc20Type?: 'erc20' | 'native';
816
1138
  /**
817
1139
  * Fill source of the order for the token sale
818
1140
  */
@@ -821,6 +1143,14 @@ export declare namespace RuleUpdateResponse {
821
1143
  * Percentage reward given to a user for their first referral.
822
1144
  */
823
1145
  firstReferralReward?: number | null;
1146
+ /**
1147
+ * Name of the GitHub branch to check for PR merge.
1148
+ */
1149
+ githubBranchName?: string | null;
1150
+ /**
1151
+ * URL of the GitHub repository to check for star.
1152
+ */
1153
+ githubRepoUrl?: string | null;
824
1154
  /**
825
1155
  * Flag indicating whether the fill source is included.
826
1156
  */
@@ -829,10 +1159,6 @@ export declare namespace RuleUpdateResponse {
829
1159
  * Indicates if the item has never been sold.
830
1160
  */
831
1161
  hasNeverSold?: boolean;
832
- /**
833
- * Flag indicating whether the order source is included.
834
- */
835
- hasOrderSource?: boolean;
836
1162
  /**
837
1163
  * Indicates if the full royalty has been paid for items.
838
1164
  */
@@ -849,10 +1175,18 @@ export declare namespace RuleUpdateResponse {
849
1175
  * URL of the image associated with the rule.
850
1176
  */
851
1177
  imageUrl?: string | null;
1178
+ /**
1179
+ * If enabled, the first transaction done on the platform will complete this rule
1180
+ */
1181
+ isCheckInOnEveryTxn?: boolean;
852
1182
  /**
853
1183
  * Indicates if the multiplier has been applied to rewards.
854
1184
  */
855
1185
  isMultiplierApplied?: boolean;
1186
+ /**
1187
+ * Flag indicating if the rule is restricted to new users.
1188
+ */
1189
+ isRestrictedToNewUsers?: boolean;
856
1190
  /**
857
1191
  * Flag indicating if rewards are applied retroactively.
858
1192
  */
@@ -865,6 +1199,10 @@ export declare namespace RuleUpdateResponse {
865
1199
  * Optional link associated with the metadata.
866
1200
  */
867
1201
  link?: string | null;
1202
+ /**
1203
+ * Liquidity pool details.
1204
+ */
1205
+ liquidity?: Metadata.Liquidity;
868
1206
  /**
869
1207
  * Maximum quantity constraint for token holding.
870
1208
  */
@@ -898,17 +1236,33 @@ export declare namespace RuleUpdateResponse {
898
1236
  */
899
1237
  onlyRewardSingleTokenOwnership?: boolean | null;
900
1238
  /**
901
- * Order source of the order for the token sale
1239
+ * Pre-generated text template that will be used to prefill the post content.
902
1240
  */
903
- orderSource?: string;
1241
+ preGeneratedPostText?: string | null;
904
1242
  /**
905
1243
  * Promotional code associated with the rule.
906
1244
  */
907
1245
  promoCode?: string;
1246
+ /**
1247
+ * URL of the CSV file containing promo codes.
1248
+ */
1249
+ promoCodeCsvUrl?: string;
1250
+ /**
1251
+ * Numbers of the promotional code to be generated.
1252
+ */
1253
+ promoCodeLength?: number | null;
1254
+ /**
1255
+ * Type of the promotional code.
1256
+ */
1257
+ promoCodeType?: 'code' | 'csv' | 'generate';
908
1258
  /**
909
1259
  * Array defining ranges and corresponding rewards.
910
1260
  */
911
1261
  range?: Array<Metadata.Range>;
1262
+ /**
1263
+ * ID of the Reddit post.
1264
+ */
1265
+ redditPostId?: string | null;
912
1266
  /**
913
1267
  * Object defining referral requirements.
914
1268
  */
@@ -917,10 +1271,55 @@ export declare namespace RuleUpdateResponse {
917
1271
  * Lump sum reward given to a referrer.
918
1272
  */
919
1273
  referrerReward?: number | null;
1274
+ /**
1275
+ * Loyalty currency ID of the referrer reward.
1276
+ */
1277
+ referrerRewardLoyaltyCurrencyId?: string | null;
1278
+ /**
1279
+ * Flag indicating if the post link is required.
1280
+ */
1281
+ requirePostLink?: boolean | null;
1282
+ /**
1283
+ * Flag indicating if media metadata is required.
1284
+ */
1285
+ requirePostMediaLink?: boolean | null;
1286
+ /**
1287
+ * Flag indicating if the rule can also reward badges per range.
1288
+ */
1289
+ rewardBadgePerRange?: boolean;
1290
+ /**
1291
+ * Flag indicating if the reward is rewarded by batch.
1292
+ */
1293
+ rewardByBatch?: boolean | null;
1294
+ /**
1295
+ * Criteria to evaluate the reward.
1296
+ */
1297
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
1298
+ /**
1299
+ * Flag indicating if the reward is rewarded per action.
1300
+ */
1301
+ rewardPerAction?: boolean | null;
920
1302
  /**
921
1303
  * Flag indicating if rewards are given per impression.
922
1304
  */
923
1305
  rewardPerImpression?: boolean | null;
1306
+ /**
1307
+ * Flag indicating if the rule should reward based on value of traded tokens
1308
+ * instead of count.
1309
+ */
1310
+ rewardPerValue?: boolean;
1311
+ /**
1312
+ * Flag indicating if the rule should reward quality posts.
1313
+ */
1314
+ rewardQualityPosts?: boolean;
1315
+ /**
1316
+ * Wallet address of the user can only be used if userId is not provided
1317
+ */
1318
+ royaltyAddress?: string;
1319
+ /**
1320
+ * Royalty percentage of the item.
1321
+ */
1322
+ royaltyPercentage?: number;
924
1323
  /**
925
1324
  * Currency associated with sales.
926
1325
  */
@@ -944,7 +1343,7 @@ export declare namespace RuleUpdateResponse {
944
1343
  /**
945
1344
  * Social media platform associated with the rule.
946
1345
  */
947
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
1346
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
948
1347
  /**
949
1348
  * URL of the social platform's logo.
950
1349
  */
@@ -953,10 +1352,18 @@ export declare namespace RuleUpdateResponse {
953
1352
  * Name of the social platform.
954
1353
  */
955
1354
  socialPlatformName?: string | null;
1355
+ /**
1356
+ * ID of the Steam app.
1357
+ */
1358
+ steamAppId?: string | null;
956
1359
  /**
957
1360
  * Array of streak milestones and corresponding rewards.
958
1361
  */
959
1362
  streakArray?: Array<Metadata.StreakArray> | null;
1363
+ /**
1364
+ * Metadata for swap loyalty rules
1365
+ */
1366
+ swap?: Metadata.Swap;
960
1367
  /**
961
1368
  * ID of the Telegram channel.
962
1369
  */
@@ -969,6 +1376,11 @@ export declare namespace RuleUpdateResponse {
969
1376
  * Flag indicating if all contracts are tracked.
970
1377
  */
971
1378
  trackAllContracts?: boolean | null;
1379
+ /**
1380
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
1381
+ * completed once the progress is 100%.
1382
+ */
1383
+ trackProgress?: boolean | null;
972
1384
  /**
973
1385
  * URL of the associated Twitter account.
974
1386
  */
@@ -1004,7 +1416,15 @@ export declare namespace RuleUpdateResponse {
1004
1416
  /**
1005
1417
  * Type of wallet associated with the rule.
1006
1418
  */
1007
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
1419
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
1420
+ /**
1421
+ * ID of the Youtube channel.
1422
+ */
1423
+ youtubeChannelId?: string | null;
1424
+ /**
1425
+ * ID of the Youtube video.
1426
+ */
1427
+ youtubeVideoId?: string | null;
1008
1428
  }
1009
1429
  namespace Metadata {
1010
1430
  interface Collection {
@@ -1019,7 +1439,7 @@ export declare namespace RuleUpdateResponse {
1019
1439
  /**
1020
1440
  * Blockchain network of the collection.
1021
1441
  */
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';
1442
+ 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
1443
  }
1024
1444
  /**
1025
1445
  * Object containing details for the call-to-action.
@@ -1084,6 +1504,49 @@ export declare namespace RuleUpdateResponse {
1084
1504
  */
1085
1505
  id: string;
1086
1506
  }
1507
+ /**
1508
+ * Liquidity pool details.
1509
+ */
1510
+ interface Liquidity {
1511
+ /**
1512
+ * Calculation type of the liquidity pool.
1513
+ */
1514
+ calculationType?: 'fixed' | 'custom';
1515
+ /**
1516
+ * Custom function to calculate the the reward amount based on the liquidity
1517
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1518
+ * USD.
1519
+ */
1520
+ customFunction?: string;
1521
+ /**
1522
+ * Liquidity provided per day in USD
1523
+ */
1524
+ liquidityPerDay?: number;
1525
+ /**
1526
+ * Blockchain network of the liquidity pool.
1527
+ */
1528
+ 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';
1529
+ /**
1530
+ * Indicates if only in-range liquidity is rewarded.
1531
+ */
1532
+ onlyRewardInRangeLiquidity?: boolean;
1533
+ /**
1534
+ * Array of liquidity pools associated with the rule.
1535
+ */
1536
+ pools?: Array<Liquidity.Pool>;
1537
+ /**
1538
+ * Protocol of the liquidity pool.
1539
+ */
1540
+ protocol?: string;
1541
+ }
1542
+ namespace Liquidity {
1543
+ interface Pool {
1544
+ /**
1545
+ * Unique identifier of the liquidity pool.
1546
+ */
1547
+ id: string;
1548
+ }
1549
+ }
1087
1550
  interface Range {
1088
1551
  /**
1089
1552
  * Reward amount for this range.
@@ -1097,6 +1560,14 @@ export declare namespace RuleUpdateResponse {
1097
1560
  * Start value of the range.
1098
1561
  */
1099
1562
  startRange: number;
1563
+ /**
1564
+ * ID of the loyalty badge for this range.
1565
+ */
1566
+ loyaltyBadgeId?: string;
1567
+ /**
1568
+ * Amount of the loyalty multiplier for this range.
1569
+ */
1570
+ loyaltyMultiplierAmount?: number;
1100
1571
  }
1101
1572
  /**
1102
1573
  * Object defining referral requirements.
@@ -1140,18 +1611,14 @@ export declare namespace RuleUpdateResponse {
1140
1611
  * Object containing details of the associated smart contract.
1141
1612
  */
1142
1613
  interface SmartContract {
1143
- /**
1144
- * ABI of the smart contract.
1145
- */
1146
- abi?: string | null;
1147
1614
  /**
1148
1615
  * Mapping of addresses for the smart contract.
1149
1616
  */
1150
1617
  addressMapping?: string | null;
1151
1618
  /**
1152
- * Array of bonus details applied to the rule.
1619
+ * Object containing details of the amount multiplier from the event.
1153
1620
  */
1154
- bonus?: Array<SmartContract.Bonus> | null;
1621
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1155
1622
  /**
1156
1623
  * ID of the smart contract.
1157
1624
  */
@@ -1160,58 +1627,28 @@ export declare namespace RuleUpdateResponse {
1160
1627
  * Criteria to evaluate the smart contract event.
1161
1628
  */
1162
1629
  criteria?: 'everyEvent' | 'byParameter' | null;
1163
- /**
1164
- * Time range applied to the rule.
1165
- */
1166
- customRange?: SmartContract.CustomRange | null;
1167
1630
  /**
1168
1631
  * Event emitted by the smart contract.
1169
1632
  */
1170
1633
  event?: string | null;
1171
- /**
1172
- * Maximum value allowed for the parameter.
1173
- */
1174
- max?: number | null;
1175
1634
  /**
1176
1635
  * Array of parameters for the smart contract.
1177
1636
  */
1178
1637
  params?: Array<SmartContract.Param> | null;
1179
1638
  /**
1180
- * Flag indicating if a bonus is applied.
1181
- */
1182
- withBonus?: boolean | null;
1183
- /**
1184
- * Flag indicating if a custom range is applied.
1639
+ * Type of the smart contract interaction.
1185
1640
  */
1186
- withCustomRange?: boolean | null;
1187
- /**
1188
- * Flag indicating if a maximum limit is applied.
1189
- */
1190
- withMax?: boolean | null;
1641
+ type?: 'function' | 'event' | null;
1191
1642
  }
1192
1643
  namespace SmartContract {
1193
- interface Bonus {
1194
- /**
1195
- * Amount of the bonus.
1196
- */
1197
- amount?: number | null;
1198
- /**
1199
- * Number of times the bonus is applied.
1200
- */
1201
- count?: number | null;
1202
- }
1203
1644
  /**
1204
- * Time range applied to the rule.
1645
+ * Object containing details of the amount multiplier from the event.
1205
1646
  */
1206
- interface CustomRange {
1647
+ interface AmountMultiplier {
1207
1648
  /**
1208
- * End time of the custom range.
1649
+ * Mapping of the value for the smart contract.
1209
1650
  */
1210
- endsAt?: string | null;
1211
- /**
1212
- * Start time of the custom range.
1213
- */
1214
- startsAt?: string | null;
1651
+ valueMapping?: string | null;
1215
1652
  }
1216
1653
  interface Param {
1217
1654
  /**
@@ -1248,6 +1685,24 @@ export declare namespace RuleUpdateResponse {
1248
1685
  */
1249
1686
  streakMilestone: number;
1250
1687
  }
1688
+ /**
1689
+ * Metadata for swap loyalty rules
1690
+ */
1691
+ interface Swap {
1692
+ provider?: 'any' | 'relay' | 'lifi';
1693
+ relayReferrerId?: string;
1694
+ requireCrossChainSwap?: boolean;
1695
+ swappedToChain?: 'any' | number | string;
1696
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1697
+ tokenMode?: 'any' | 'specific';
1698
+ trackTokenAmount?: boolean;
1699
+ }
1700
+ namespace Swap {
1701
+ interface SwappedToToken {
1702
+ address: string;
1703
+ chainId: string;
1704
+ }
1705
+ }
1251
1706
  }
1252
1707
  }
1253
1708
  export interface RuleListResponse {
@@ -1255,9 +1710,6 @@ export interface RuleListResponse {
1255
1710
  hasNextPage: boolean;
1256
1711
  }
1257
1712
  export declare namespace RuleListResponse {
1258
- /**
1259
- * Schema for a loyalty rule
1260
- */
1261
1713
  interface Data {
1262
1714
  /**
1263
1715
  * Unique identifier for the loyalty rule
@@ -1266,7 +1718,7 @@ export declare namespace RuleListResponse {
1266
1718
  /**
1267
1719
  * Amount associated with the loyalty rule
1268
1720
  */
1269
- amount: number;
1721
+ amount: number | null;
1270
1722
  /**
1271
1723
  * Timestamp when the loyalty rule was created
1272
1724
  */
@@ -1275,14 +1727,38 @@ export declare namespace RuleListResponse {
1275
1727
  * Timestamp when the loyalty rule was deleted (if applicable)
1276
1728
  */
1277
1729
  deletedAt: string | null;
1730
+ /**
1731
+ * Description of the loyalty rule
1732
+ */
1733
+ description: string;
1734
+ /**
1735
+ * End time of the loyalty rule
1736
+ */
1737
+ endTime: string | null;
1278
1738
  /**
1279
1739
  * Frequency of the loyalty rule
1280
1740
  */
1281
1741
  frequency: string;
1742
+ /**
1743
+ * Chains attached to the loyalty rule
1744
+ */
1745
+ loyaltyRuleChain: Array<Data.LoyaltyRuleChain>;
1746
+ /**
1747
+ * Name of the loyalty rule
1748
+ */
1749
+ name: string;
1282
1750
  /**
1283
1751
  * Unique identifier for the organization
1284
1752
  */
1285
1753
  organizationId: string;
1754
+ /**
1755
+ * Type of the reward
1756
+ */
1757
+ rewardType: 'points' | 'multiplier' | 'badge';
1758
+ /**
1759
+ * Start time of the loyalty rule
1760
+ */
1761
+ startTime: string | null;
1286
1762
  /**
1287
1763
  * Type of the loyalty rule
1288
1764
  */
@@ -1299,10 +1775,748 @@ export declare namespace RuleListResponse {
1299
1775
  * Optional address of the collection
1300
1776
  */
1301
1777
  collectionAddress?: string;
1778
+ /**
1779
+ * URL of the media associated with the loyalty rule
1780
+ */
1781
+ mediaUrl?: string | null;
1302
1782
  /**
1303
1783
  * Optional metadata for the loyalty rule
1304
1784
  */
1305
- metadata?: Record<string, unknown>;
1785
+ metadata?: {
1786
+ [key: string]: Data.Metadata;
1787
+ };
1788
+ }
1789
+ namespace Data {
1790
+ interface LoyaltyRuleChain {
1791
+ /**
1792
+ * Unique identifier for the rule chain
1793
+ */
1794
+ id: string;
1795
+ loyaltyConditions: Array<LoyaltyRuleChain.LoyaltyCondition>;
1796
+ /**
1797
+ * Unique identifier for the loyalty rule
1798
+ */
1799
+ loyaltyRuleId: string;
1800
+ /**
1801
+ * Name of the rule chain
1802
+ */
1803
+ name: string;
1804
+ }
1805
+ namespace LoyaltyRuleChain {
1806
+ interface LoyaltyCondition {
1807
+ /**
1808
+ * Unique identifier for the condition
1809
+ */
1810
+ id: string;
1811
+ /**
1812
+ * Amount of the condition
1813
+ */
1814
+ amount: number | null;
1815
+ association: Array<LoyaltyCondition.Association>;
1816
+ /**
1817
+ * URL of the CSV file
1818
+ */
1819
+ csvUrl: string | null;
1820
+ /**
1821
+ * Description of the condition
1822
+ */
1823
+ description: string | null;
1824
+ /**
1825
+ * Number of times the condition must be met
1826
+ */
1827
+ repeatCount: number | null;
1828
+ /**
1829
+ * Number of times the condition must be met
1830
+ */
1831
+ requiredCount: number | null;
1832
+ /**
1833
+ * Type of the condition
1834
+ */
1835
+ type: 'rule' | 'rules' | 'points' | 'section' | 'level' | 'api' | 'badge' | 'badges' | 'csv';
1836
+ }
1837
+ namespace LoyaltyCondition {
1838
+ interface Association {
1839
+ /**
1840
+ * Unique identifier for the association
1841
+ */
1842
+ id: string;
1843
+ /**
1844
+ * Unique identifier for the loyalty badge
1845
+ */
1846
+ loyaltyBadgeId: string | null;
1847
+ /**
1848
+ * Unique identifier for the loyalty currency
1849
+ */
1850
+ loyaltyCurrencyId: string | null;
1851
+ loyaltyRule: Association.LoyaltyRule | null;
1852
+ /**
1853
+ * Unique identifier for the loyalty rule group
1854
+ */
1855
+ loyaltyRuleGroupId: string | null;
1856
+ /**
1857
+ * Unique identifier for the loyalty rule
1858
+ */
1859
+ loyaltyRuleId: string | null;
1860
+ }
1861
+ namespace Association {
1862
+ interface LoyaltyRule {
1863
+ /**
1864
+ * Name of the loyalty rule
1865
+ */
1866
+ name: string;
1867
+ }
1868
+ }
1869
+ }
1870
+ }
1871
+ interface Metadata {
1872
+ /**
1873
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
1874
+ * any rule completions count as check-in.
1875
+ */
1876
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
1877
+ /**
1878
+ * Number of tokens per batch.
1879
+ */
1880
+ batchSize?: number | null;
1881
+ /**
1882
+ * Text displayed on the action button.
1883
+ */
1884
+ buttonText?: string | null;
1885
+ /**
1886
+ * Flag indicating if commenting is required.
1887
+ */
1888
+ checkComment?: boolean | null;
1889
+ /**
1890
+ * Flag indicating if liking the post is required.
1891
+ */
1892
+ checkLike?: boolean | null;
1893
+ /**
1894
+ * Flag indicating if reposting is required.
1895
+ */
1896
+ checkRepost?: boolean | null;
1897
+ /**
1898
+ * Text to check in the Twitter post, username, or bio.
1899
+ */
1900
+ checkText?: string | Array<string> | null;
1901
+ /**
1902
+ * Array of collections associated with the rule.
1903
+ */
1904
+ collection?: Array<Metadata.Collection>;
1905
+ /**
1906
+ * Conditions for completing the profile.
1907
+ */
1908
+ completeProfileConditions?: {
1909
+ [key: string]: boolean;
1910
+ } | null;
1911
+ /**
1912
+ * Description of the external rule condition (only for external rules)
1913
+ */
1914
+ conditionDescription?: string;
1915
+ /**
1916
+ * Object containing details for the call-to-action.
1917
+ */
1918
+ cta?: Metadata.Cta | null;
1919
+ /**
1920
+ * API key for custom rewards integration.
1921
+ */
1922
+ customRewardsApiKey?: string;
1923
+ /**
1924
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1925
+ */
1926
+ directRpc?: boolean;
1927
+ /**
1928
+ * Array of Discord servers, channels, and roles to join.
1929
+ */
1930
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
1931
+ /**
1932
+ * Array of drip quests required to complete the rule.
1933
+ */
1934
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
1935
+ /**
1936
+ * Flag indicating whether joining Discord servers is required.
1937
+ */
1938
+ enableJoinDiscordServers?: boolean | null;
1939
+ /**
1940
+ * Flag indicating whether streaks are enabled.
1941
+ */
1942
+ enableStreaks?: boolean | null;
1943
+ /**
1944
+ * Flag indicating whether the verified multiplier is enabled.
1945
+ */
1946
+ enableVerifiedMultiplier?: boolean;
1947
+ /**
1948
+ * Type of ERC20 token for the loyalty rule.
1949
+ */
1950
+ erc20Type?: 'erc20' | 'native';
1951
+ /**
1952
+ * Fill source of the order for the token sale
1953
+ */
1954
+ fillSource?: string;
1955
+ /**
1956
+ * Percentage reward given to a user for their first referral.
1957
+ */
1958
+ firstReferralReward?: number | null;
1959
+ /**
1960
+ * Name of the GitHub branch to check for PR merge.
1961
+ */
1962
+ githubBranchName?: string | null;
1963
+ /**
1964
+ * URL of the GitHub repository to check for star.
1965
+ */
1966
+ githubRepoUrl?: string | null;
1967
+ /**
1968
+ * Flag indicating whether the fill source is included.
1969
+ */
1970
+ hasFillSource?: boolean;
1971
+ /**
1972
+ * Indicates if the item has never been sold.
1973
+ */
1974
+ hasNeverSold?: boolean;
1975
+ /**
1976
+ * Indicates if the full royalty has been paid for items.
1977
+ */
1978
+ hasPaidFullRoyalty?: boolean;
1979
+ /**
1980
+ * Flag indicating if the sale currency is included.
1981
+ */
1982
+ hasSaleCurrency?: boolean;
1983
+ /**
1984
+ * Indicates if the user has a verified Twitter account.
1985
+ */
1986
+ hasVerifiedTwitter?: boolean;
1987
+ /**
1988
+ * URL of the image associated with the rule.
1989
+ */
1990
+ imageUrl?: string | null;
1991
+ /**
1992
+ * If enabled, the first transaction done on the platform will complete this rule
1993
+ */
1994
+ isCheckInOnEveryTxn?: boolean;
1995
+ /**
1996
+ * Indicates if the multiplier has been applied to rewards.
1997
+ */
1998
+ isMultiplierApplied?: boolean;
1999
+ /**
2000
+ * Flag indicating if the rule is restricted to new users.
2001
+ */
2002
+ isRestrictedToNewUsers?: boolean;
2003
+ /**
2004
+ * Flag indicating if rewards are applied retroactively.
2005
+ */
2006
+ isRetroactive?: boolean | null;
2007
+ /**
2008
+ * Flag indicating if the token hold multiplier is applied.
2009
+ */
2010
+ isTokenHoldMultiplier?: boolean;
2011
+ /**
2012
+ * Optional link associated with the metadata.
2013
+ */
2014
+ link?: string | null;
2015
+ /**
2016
+ * Liquidity pool details.
2017
+ */
2018
+ liquidity?: Metadata.Liquidity;
2019
+ /**
2020
+ * Maximum quantity constraint for token holding.
2021
+ */
2022
+ maxQty?: number | null;
2023
+ /**
2024
+ * Minimum quantity constraint for token holding.
2025
+ */
2026
+ minQty?: number | null;
2027
+ /**
2028
+ * Array of loyalty currency IDs used for multipliers.
2029
+ */
2030
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
2031
+ /**
2032
+ * Flag indicating whether to include only known users.
2033
+ */
2034
+ onlyKnownUsers?: boolean;
2035
+ /**
2036
+ * Flag indicating whether to include only native tokens.
2037
+ */
2038
+ onlyNative?: boolean;
2039
+ /**
2040
+ * Flag indicating whether to include only non-listed items.
2041
+ */
2042
+ onlyNonListed?: boolean;
2043
+ /**
2044
+ * Indicates if only existing users are rewarded.
2045
+ */
2046
+ onlyRewardExistingUser?: boolean;
2047
+ /**
2048
+ * give points for only one token ownership per contract
2049
+ */
2050
+ onlyRewardSingleTokenOwnership?: boolean | null;
2051
+ /**
2052
+ * Pre-generated text template that will be used to prefill the post content.
2053
+ */
2054
+ preGeneratedPostText?: string | null;
2055
+ /**
2056
+ * Promotional code associated with the rule.
2057
+ */
2058
+ promoCode?: string;
2059
+ /**
2060
+ * URL of the CSV file containing promo codes.
2061
+ */
2062
+ promoCodeCsvUrl?: string;
2063
+ /**
2064
+ * Numbers of the promotional code to be generated.
2065
+ */
2066
+ promoCodeLength?: number | null;
2067
+ /**
2068
+ * Type of the promotional code.
2069
+ */
2070
+ promoCodeType?: 'code' | 'csv' | 'generate';
2071
+ /**
2072
+ * Array defining ranges and corresponding rewards.
2073
+ */
2074
+ range?: Array<Metadata.Range>;
2075
+ /**
2076
+ * ID of the Reddit post.
2077
+ */
2078
+ redditPostId?: string | null;
2079
+ /**
2080
+ * Object defining referral requirements.
2081
+ */
2082
+ referralRequirements?: Metadata.ReferralRequirements | null;
2083
+ /**
2084
+ * Lump sum reward given to a referrer.
2085
+ */
2086
+ referrerReward?: number | null;
2087
+ /**
2088
+ * Loyalty currency ID of the referrer reward.
2089
+ */
2090
+ referrerRewardLoyaltyCurrencyId?: string | null;
2091
+ /**
2092
+ * Flag indicating if the post link is required.
2093
+ */
2094
+ requirePostLink?: boolean | null;
2095
+ /**
2096
+ * Flag indicating if media metadata is required.
2097
+ */
2098
+ requirePostMediaLink?: boolean | null;
2099
+ /**
2100
+ * Flag indicating if the rule can also reward badges per range.
2101
+ */
2102
+ rewardBadgePerRange?: boolean;
2103
+ /**
2104
+ * Flag indicating if the reward is rewarded by batch.
2105
+ */
2106
+ rewardByBatch?: boolean | null;
2107
+ /**
2108
+ * Criteria to evaluate the reward.
2109
+ */
2110
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
2111
+ /**
2112
+ * Flag indicating if the reward is rewarded per action.
2113
+ */
2114
+ rewardPerAction?: boolean | null;
2115
+ /**
2116
+ * Flag indicating if rewards are given per impression.
2117
+ */
2118
+ rewardPerImpression?: boolean | null;
2119
+ /**
2120
+ * Flag indicating if the rule should reward based on value of traded tokens
2121
+ * instead of count.
2122
+ */
2123
+ rewardPerValue?: boolean;
2124
+ /**
2125
+ * Flag indicating if the rule should reward quality posts.
2126
+ */
2127
+ rewardQualityPosts?: boolean;
2128
+ /**
2129
+ * Wallet address of the user can only be used if userId is not provided
2130
+ */
2131
+ royaltyAddress?: string;
2132
+ /**
2133
+ * Royalty percentage of the item.
2134
+ */
2135
+ royaltyPercentage?: number;
2136
+ /**
2137
+ * Currency associated with sales.
2138
+ */
2139
+ saleCurrency?: string;
2140
+ /**
2141
+ * Percentage reward given for a second-level referral.
2142
+ */
2143
+ secondReferralReward?: number | null;
2144
+ /**
2145
+ * Flag indicating if the multiplier is skipped.
2146
+ */
2147
+ skipMultiplier?: boolean | null;
2148
+ /**
2149
+ * Object containing details of the associated smart contract.
2150
+ */
2151
+ smartContract?: Metadata.SmartContract;
2152
+ /**
2153
+ * Array of snapshot proposals for the rule.
2154
+ */
2155
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
2156
+ /**
2157
+ * Social media platform associated with the rule.
2158
+ */
2159
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
2160
+ /**
2161
+ * URL of the social platform's logo.
2162
+ */
2163
+ socialPlatformLogo?: string | null;
2164
+ /**
2165
+ * Name of the social platform.
2166
+ */
2167
+ socialPlatformName?: string | null;
2168
+ /**
2169
+ * ID of the Steam app.
2170
+ */
2171
+ steamAppId?: string | null;
2172
+ /**
2173
+ * Array of streak milestones and corresponding rewards.
2174
+ */
2175
+ streakArray?: Array<Metadata.StreakArray> | null;
2176
+ /**
2177
+ * Metadata for swap loyalty rules
2178
+ */
2179
+ swap?: Metadata.Swap;
2180
+ /**
2181
+ * ID of the Telegram channel.
2182
+ */
2183
+ telegramChannelId?: string | null;
2184
+ /**
2185
+ * Time delay in seconds to verify actions.
2186
+ */
2187
+ timeDelayToVerifySeconds?: string | number | null;
2188
+ /**
2189
+ * Flag indicating if all contracts are tracked.
2190
+ */
2191
+ trackAllContracts?: boolean | null;
2192
+ /**
2193
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2194
+ * completed once the progress is 100%.
2195
+ */
2196
+ trackProgress?: boolean | null;
2197
+ /**
2198
+ * URL of the associated Twitter account.
2199
+ */
2200
+ twitterAccountUrl?: string;
2201
+ /**
2202
+ * Hashtag associated with the Twitter post.
2203
+ */
2204
+ twitterHashtag?: string;
2205
+ /**
2206
+ * URL of the associated Twitter post.
2207
+ */
2208
+ twitterPostUrl?: string;
2209
+ /**
2210
+ * Unique identifier of the Twitter user.
2211
+ */
2212
+ twitterUserId?: string;
2213
+ /**
2214
+ * Twitter username of the user.
2215
+ */
2216
+ twitterUsername?: string;
2217
+ /**
2218
+ * Minimum length of the verification text.
2219
+ */
2220
+ verificationTextMinimumLength?: number | null;
2221
+ /**
2222
+ * Multiplier applied to rewards for verified users.
2223
+ */
2224
+ verifiedMultiplier?: number | null;
2225
+ /**
2226
+ * Placeholder text for verification input fields.
2227
+ */
2228
+ verifyPlaceHolderText?: string | null;
2229
+ /**
2230
+ * Type of wallet associated with the rule.
2231
+ */
2232
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
2233
+ /**
2234
+ * ID of the Youtube channel.
2235
+ */
2236
+ youtubeChannelId?: string | null;
2237
+ /**
2238
+ * ID of the Youtube video.
2239
+ */
2240
+ youtubeVideoId?: string | null;
2241
+ }
2242
+ namespace Metadata {
2243
+ interface Collection {
2244
+ /**
2245
+ * Blockchain address of the collection.
2246
+ */
2247
+ address?: string;
2248
+ /**
2249
+ * Multiplier applied to the rewards for this collection.
2250
+ */
2251
+ multiplier?: number;
2252
+ /**
2253
+ * Blockchain network of the collection.
2254
+ */
2255
+ 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';
2256
+ }
2257
+ /**
2258
+ * Object containing details for the call-to-action.
2259
+ */
2260
+ interface Cta {
2261
+ /**
2262
+ * Link for the call-to-action.
2263
+ */
2264
+ href?: string | null;
2265
+ /**
2266
+ * Label for the call-to-action.
2267
+ */
2268
+ label?: string | null;
2269
+ }
2270
+ interface DiscordServersToJoin {
2271
+ /**
2272
+ * ID of the Discord server to join.
2273
+ */
2274
+ id?: string;
2275
+ /**
2276
+ * Array of Discord channels to join.
2277
+ */
2278
+ channels?: Array<DiscordServersToJoin.Channel>;
2279
+ /**
2280
+ * Array of roles to assign in the Discord server.
2281
+ */
2282
+ roles?: Array<DiscordServersToJoin.Role>;
2283
+ }
2284
+ namespace DiscordServersToJoin {
2285
+ interface Channel {
2286
+ /**
2287
+ * ID of the Discord channel.
2288
+ */
2289
+ id?: string;
2290
+ /**
2291
+ * Array of emojis used in the channel.
2292
+ */
2293
+ emojis?: Array<Channel.Emoji>;
2294
+ /**
2295
+ * Phrase of text to be present in the discord message
2296
+ */
2297
+ text?: string;
2298
+ }
2299
+ namespace Channel {
2300
+ interface Emoji {
2301
+ /**
2302
+ * ID of the emoji used in the channel.
2303
+ */
2304
+ id?: string;
2305
+ }
2306
+ }
2307
+ interface Role {
2308
+ /**
2309
+ * ID of the role in the Discord server.
2310
+ */
2311
+ id: string;
2312
+ }
2313
+ }
2314
+ interface DripQuestsToComplete {
2315
+ /**
2316
+ * ID of the drip quest to complete.
2317
+ */
2318
+ id: string;
2319
+ }
2320
+ /**
2321
+ * Liquidity pool details.
2322
+ */
2323
+ interface Liquidity {
2324
+ /**
2325
+ * Calculation type of the liquidity pool.
2326
+ */
2327
+ calculationType?: 'fixed' | 'custom';
2328
+ /**
2329
+ * Custom function to calculate the the reward amount based on the liquidity
2330
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2331
+ * USD.
2332
+ */
2333
+ customFunction?: string;
2334
+ /**
2335
+ * Liquidity provided per day in USD
2336
+ */
2337
+ liquidityPerDay?: number;
2338
+ /**
2339
+ * Blockchain network of the liquidity pool.
2340
+ */
2341
+ 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';
2342
+ /**
2343
+ * Indicates if only in-range liquidity is rewarded.
2344
+ */
2345
+ onlyRewardInRangeLiquidity?: boolean;
2346
+ /**
2347
+ * Array of liquidity pools associated with the rule.
2348
+ */
2349
+ pools?: Array<Liquidity.Pool>;
2350
+ /**
2351
+ * Protocol of the liquidity pool.
2352
+ */
2353
+ protocol?: string;
2354
+ }
2355
+ namespace Liquidity {
2356
+ interface Pool {
2357
+ /**
2358
+ * Unique identifier of the liquidity pool.
2359
+ */
2360
+ id: string;
2361
+ }
2362
+ }
2363
+ interface Range {
2364
+ /**
2365
+ * Reward amount for this range.
2366
+ */
2367
+ amount: number;
2368
+ /**
2369
+ * End value of the range.
2370
+ */
2371
+ endRange: number;
2372
+ /**
2373
+ * Start value of the range.
2374
+ */
2375
+ startRange: number;
2376
+ /**
2377
+ * ID of the loyalty badge for this range.
2378
+ */
2379
+ loyaltyBadgeId?: string;
2380
+ /**
2381
+ * Amount of the loyalty multiplier for this range.
2382
+ */
2383
+ loyaltyMultiplierAmount?: number;
2384
+ }
2385
+ /**
2386
+ * Object defining referral requirements.
2387
+ */
2388
+ interface ReferralRequirements {
2389
+ /**
2390
+ * Flag indicating if achieving points is required.
2391
+ */
2392
+ achievePoints?: boolean | null;
2393
+ /**
2394
+ * Flag indicating if completing the profile is required.
2395
+ */
2396
+ completeProfile?: boolean | null;
2397
+ /**
2398
+ * Flag indicating if connecting Discord is required.
2399
+ */
2400
+ connectDiscord?: boolean | null;
2401
+ /**
2402
+ * Flag indicating if connecting email is required.
2403
+ */
2404
+ connectEmail?: boolean | null;
2405
+ /**
2406
+ * Flag indicating if connecting Twitter is required.
2407
+ */
2408
+ connectTwitter?: boolean | null;
2409
+ points?: ReferralRequirements.Points | null;
2410
+ }
2411
+ namespace ReferralRequirements {
2412
+ interface Points {
2413
+ /**
2414
+ * Points required for referral.
2415
+ */
2416
+ amount?: number | null;
2417
+ /**
2418
+ * ID of the loyalty currency for referral.
2419
+ */
2420
+ loyaltyCurrecyId?: string | null;
2421
+ }
2422
+ }
2423
+ /**
2424
+ * Object containing details of the associated smart contract.
2425
+ */
2426
+ interface SmartContract {
2427
+ /**
2428
+ * Mapping of addresses for the smart contract.
2429
+ */
2430
+ addressMapping?: string | null;
2431
+ /**
2432
+ * Object containing details of the amount multiplier from the event.
2433
+ */
2434
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2435
+ /**
2436
+ * ID of the smart contract.
2437
+ */
2438
+ contractId?: string | null;
2439
+ /**
2440
+ * Criteria to evaluate the smart contract event.
2441
+ */
2442
+ criteria?: 'everyEvent' | 'byParameter' | null;
2443
+ /**
2444
+ * Event emitted by the smart contract.
2445
+ */
2446
+ event?: string | null;
2447
+ /**
2448
+ * Array of parameters for the smart contract.
2449
+ */
2450
+ params?: Array<SmartContract.Param> | null;
2451
+ /**
2452
+ * Type of the smart contract interaction.
2453
+ */
2454
+ type?: 'function' | 'event' | null;
2455
+ }
2456
+ namespace SmartContract {
2457
+ /**
2458
+ * Object containing details of the amount multiplier from the event.
2459
+ */
2460
+ interface AmountMultiplier {
2461
+ /**
2462
+ * Mapping of the value for the smart contract.
2463
+ */
2464
+ valueMapping?: string | null;
2465
+ }
2466
+ interface Param {
2467
+ /**
2468
+ * Condition to check for the parameter.
2469
+ */
2470
+ condition?: string | null;
2471
+ /**
2472
+ * Name of the smart contract parameter.
2473
+ */
2474
+ name?: string | null;
2475
+ /**
2476
+ * Value of the parameter.
2477
+ */
2478
+ value?: string | null;
2479
+ }
2480
+ }
2481
+ interface SnapshotProposal {
2482
+ /**
2483
+ * ID of the snapshot proposal.
2484
+ */
2485
+ id: string;
2486
+ /**
2487
+ * Space associated with the snapshot proposal.
2488
+ */
2489
+ space: string;
2490
+ }
2491
+ interface StreakArray {
2492
+ /**
2493
+ * Reward amount for achieving the streak milestone.
2494
+ */
2495
+ streakAmount: number;
2496
+ /**
2497
+ * Milestone required to achieve the streak.
2498
+ */
2499
+ streakMilestone: number;
2500
+ }
2501
+ /**
2502
+ * Metadata for swap loyalty rules
2503
+ */
2504
+ interface Swap {
2505
+ provider?: 'any' | 'relay' | 'lifi';
2506
+ relayReferrerId?: string;
2507
+ requireCrossChainSwap?: boolean;
2508
+ swappedToChain?: 'any' | number | string;
2509
+ swappedToTokens?: Array<Swap.SwappedToToken>;
2510
+ tokenMode?: 'any' | 'specific';
2511
+ trackTokenAmount?: boolean;
2512
+ }
2513
+ namespace Swap {
2514
+ interface SwappedToToken {
2515
+ address: string;
2516
+ chainId: string;
2517
+ }
2518
+ }
2519
+ }
1306
2520
  }
1307
2521
  }
1308
2522
  export interface RuleDeleteResponse {
@@ -1310,7 +2524,7 @@ export interface RuleDeleteResponse {
1310
2524
  deletedAt: string;
1311
2525
  }
1312
2526
  export interface RuleCompleteResponse {
1313
- message: string;
2527
+ message: 'Completion request added to queue' | 'Link click being verified, come back later to check the status';
1314
2528
  }
1315
2529
  export interface RuleGetStatusResponse {
1316
2530
  data: Array<RuleGetStatusResponse.Data>;
@@ -1318,9 +2532,110 @@ export interface RuleGetStatusResponse {
1318
2532
  export declare namespace RuleGetStatusResponse {
1319
2533
  interface Data {
1320
2534
  loyaltyRuleId: string;
1321
- status: 'pending' | 'processing' | 'completed' | 'failed';
1322
2535
  userId: string;
2536
+ /**
2537
+ * The ID of the loyalty rule status for the Progress object
2538
+ */
2539
+ id?: string;
2540
+ createdAt?: string;
2541
+ fulfilledAt?: string | null;
2542
+ /**
2543
+ * Categorized examples of messages that may be returned for a loyalty rule's
2544
+ * processing result.
2545
+ *
2546
+ * User Onboarding
2547
+ *
2548
+ * - Check In: "Streak successful"
2549
+ * - Complete Profile Details: "Profile not complete"
2550
+ *
2551
+ * Connect Accounts
2552
+ *
2553
+ * - Connect TikTok: "TikTok not connected"
2554
+ * - Connect Discord: "Discord not connected", "Discord request timeout"
2555
+ * - Connect X: "Twitter not connected", "Twitter not connected or content url is
2556
+ * required"
2557
+ * - Connect Email: "Email address not connected"
2558
+ * - Connect Telegram: "Telegram not connected", "user has not setup telegram (no
2559
+ * telegramUsername), please setup username in telegram and reconnect.",
2560
+ * "Telegram request rate-limited"
2561
+ * - Connect Steam: "Steam not connected"
2562
+ * - Connect Youtube: "Youtube not connected"
2563
+ *
2564
+ * Social Quests
2565
+ *
2566
+ * - Join Telegram Group: "Telegram Channel not joined", "Telegram Channel joined
2567
+ * successfully"
2568
+ * - Post on TikTok: "TikTok post not verified"
2569
+ * - Comment on an X Post: "Quest Completed: You have commented on the tweet",
2570
+ * "Quest Not Completed: Comment not found for the specified tweet"
2571
+ * - Repost an X Post: "Quest Completed: You have retweeted the tweet", "Quest Not
2572
+ * Completed: Retweet not found for the specified tweet", "Quest Completed: You
2573
+ * have retweeted and commented on the tweet", "Quest Not Completed: You have not
2574
+ * retweeted or commented on the tweet"
2575
+ * - Follow an X Account: "Missing required parameters: twitterUserId,
2576
+ * targetUsername", "Quest Completed: You are a follower of
2577
+ * @${targetUsername}", "Quest Not Completed: Please follow @${targetUsername}
2578
+ * and try again in few minutes"
2579
+ * - React to an X Post: "Missing required parameters: texts, twitterUserId,
2580
+ * userTweetId", "No text provided", "Quest Completed: You have posted {tweetId}
2581
+ * a tweet with the text {text}", "Quest Not Completed: Your all previous {COUNT}
2582
+ * posts are already claimed. Please post a new tweet and try again in a few
2583
+ * minutes.", "Tweet is already claimed", "Tweet does not belong to the user",
2584
+ * "Text not found in tweet", "Tweet is before the quest start time", "Tweet does
2585
+ * not have media", "Text found in tweet"
2586
+ * - Add Text to X Bio: "Missing required parameters: texts, twitterUserId", "User
2587
+ * not found", "Text found in bio", "Text not found in bio"
2588
+ * - Add Text to X Username: "Missing required parameters: texts, twitterUserId",
2589
+ * "User not found", "Text found in username", "Text not found in username"
2590
+ * - Comment on an X Post with Text: "Missing required parameters: texts,
2591
+ * twitterUserId", "Comment is already claimed", "Text found in comment", "Text
2592
+ * not found in comment", "Tweet not found or could not be retrieved"
2593
+ * - Comment on a YouTube Video: "Youtube comment added", "Youtube comment not
2594
+ * added"
2595
+ * - Subscribe to a YouTube Channel: "Youtube channel subscribed", "Quest failed,
2596
+ * please make sure you have made your subscriptions public in youtube"
2597
+ * - Get X post impressions: "You've already claimed the reward for this impression
2598
+ * range."
2599
+ * - Add an Item to Steam Wishlist: "Steam Wishlist item added", "Steam Wishlist
2600
+ * item not added"
2601
+ *
2602
+ * Complex Onchain Logic
2603
+ *
2604
+ * - Token Swap: "Swap rewards calculated successfully", "Swap rule failed"
2605
+ *
2606
+ * Other
2607
+ *
2608
+ * - Answer a Quiz: "Quiz question not configured", "No question response found",
2609
+ * "Incorrect answer", "Correct answer"
2610
+ * - Answer a Poll: "Poll question not configured", "Poll response recorded"
2611
+ * - Spend in Shopify Store: "Shopify not connected"
2612
+ * - Points Airdrop: "Seems like you're not eligible for this points airdrop."
2613
+ *
2614
+ * General
2615
+ *
2616
+ * - "Quest already completed"
2617
+ * - "Quest already completed using the same social account (${socialAccountName}),
2618
+ * with the different user."
2619
+ * - "You've already claimed the reward for this quest."
2620
+ * - "Quest not achieved, please try again."
2621
+ * - "Rule is not setup"
2622
+ * - "Request aborted due to timeout"
2623
+ * - "Google account not connected"
2624
+ * - "Claim failed: Multiplier is already active"
2625
+ */
1323
2626
  message?: string;
2627
+ organizationId?: string;
2628
+ /**
2629
+ * The progress of the loyalty rule from 0 to 100
2630
+ */
2631
+ progress?: number;
2632
+ /**
2633
+ * Status of the queued job, this is only returned if the job is queued and being
2634
+ * processed, this wil be retained for 10 minutes after the job is completed
2635
+ */
2636
+ status?: 'pending' | 'processing' | 'completed' | 'failed';
2637
+ updatedAt?: string;
2638
+ websiteId?: string;
1324
2639
  }
1325
2640
  }
1326
2641
  export interface RuleCreateParams {
@@ -1367,7 +2682,7 @@ export interface RuleCreateParams {
1367
2682
  /**
1368
2683
  * Type of loyalty rule being created
1369
2684
  */
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';
2685
+ 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
2686
  /**
1372
2687
  * Unique identifier for the associated website
1373
2688
  */
@@ -1376,6 +2691,10 @@ export interface RuleCreateParams {
1376
2691
  * URL of the background asset to be displayed
1377
2692
  */
1378
2693
  backgroundAssetUrl?: string;
2694
+ /**
2695
+ * The type of claim for the reward
2696
+ */
2697
+ claimType?: 'manual' | 'auto' | null;
1379
2698
  /**
1380
2699
  * Blockchain address of the associated collection
1381
2700
  */
@@ -1396,6 +2715,15 @@ export interface RuleCreateParams {
1396
2715
  * Optional detailed description of the rule
1397
2716
  */
1398
2717
  description?: string;
2718
+ duplicatedFromId?: string | null;
2719
+ /**
2720
+ * ID of the external integration
2721
+ */
2722
+ externalIntegrationId?: string | null;
2723
+ /**
2724
+ * Optional stratus function id for the rule
2725
+ */
2726
+ functionId?: string | null;
1399
2727
  /**
1400
2728
  * Whether to hide this rule in the user interface
1401
2729
  */
@@ -1403,15 +2731,33 @@ export interface RuleCreateParams {
1403
2731
  /**
1404
2732
  * Interval between rule executions
1405
2733
  */
1406
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
2734
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1407
2735
  /**
1408
2736
  * Whether this rule is mandatory
1409
2737
  */
1410
2738
  isRequired?: boolean;
2739
+ /**
2740
+ * Unique identifier for the loyalty badge
2741
+ */
2742
+ loyaltyBadgeId?: string | null;
1411
2743
  /**
1412
2744
  * Unique identifier for the loyalty rule group
1413
2745
  */
1414
2746
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
2747
+ /**
2748
+ * URL for uploading loyalty user allotment via CSV
2749
+ */
2750
+ loyaltyUserAllotmentCsvUrl?: string;
2751
+ /**
2752
+ * The interval for the max amount. Available for the smart contract and external
2753
+ * rules.
2754
+ */
2755
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
2756
+ /**
2757
+ * The maximum amount of points a user can earn per interval. Available for the
2758
+ * smart contract and external rules.
2759
+ */
2760
+ maxAmountPerInterval?: number | null;
1415
2761
  /**
1416
2762
  * URL of the media to be displayed
1417
2763
  */
@@ -1419,25 +2765,46 @@ export interface RuleCreateParams {
1419
2765
  /**
1420
2766
  * Blockchain network where the rule will apply
1421
2767
  */
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';
2768
+ 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
2769
  /**
1424
2770
  * OAuth credentials associated with the rule
1425
2771
  */
1426
2772
  oauthCredentialsId?: string | null;
2773
+ /**
2774
+ * The lifetime of the reward
2775
+ */
2776
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
1427
2777
  /**
1428
2778
  * Type of reward issued by the rule
1429
2779
  */
1430
- rewardType?: 'points' | 'multiplier';
2780
+ rewardType?: 'points' | 'multiplier' | 'badge';
2781
+ /**
2782
+ * URL of the Shopify store
2783
+ */
2784
+ shopifyStoreUrl?: string | null;
1431
2785
  /**
1432
- * Identifier for associated subscriptions
2786
+ * Whether to show this rule before the start time
1433
2787
  */
1434
- subscriptionIdentifier?: string | null;
2788
+ showBeforeStart?: boolean;
2789
+ /**
2790
+ * Optional stratus subscription id for the rule
2791
+ */
2792
+ subscriptionId?: string | null;
1435
2793
  }
1436
2794
  export declare namespace RuleCreateParams {
1437
2795
  /**
1438
2796
  * Additional metadata for the loyalty rule
1439
2797
  */
1440
2798
  interface Metadata {
2799
+ /**
2800
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
2801
+ * any rule completions count as check-in.
2802
+ */
2803
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
2804
+ /**
2805
+ * Number of tokens per batch.
2806
+ */
2807
+ batchSize?: number | null;
1441
2808
  /**
1442
2809
  * Text displayed on the action button.
1443
2810
  */
@@ -1457,7 +2824,7 @@ export declare namespace RuleCreateParams {
1457
2824
  /**
1458
2825
  * Text to check in the Twitter post, username, or bio.
1459
2826
  */
1460
- checkText?: string | null;
2827
+ checkText?: string | Array<string> | null;
1461
2828
  /**
1462
2829
  * Array of collections associated with the rule.
1463
2830
  */
@@ -1465,7 +2832,13 @@ export declare namespace RuleCreateParams {
1465
2832
  /**
1466
2833
  * Conditions for completing the profile.
1467
2834
  */
1468
- completeProfileConditions?: Record<string, boolean> | null;
2835
+ completeProfileConditions?: {
2836
+ [key: string]: boolean;
2837
+ } | null;
2838
+ /**
2839
+ * Description of the external rule condition (only for external rules)
2840
+ */
2841
+ conditionDescription?: string;
1469
2842
  /**
1470
2843
  * Object containing details for the call-to-action.
1471
2844
  */
@@ -1474,6 +2847,10 @@ export declare namespace RuleCreateParams {
1474
2847
  * API key for custom rewards integration.
1475
2848
  */
1476
2849
  customRewardsApiKey?: string;
2850
+ /**
2851
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2852
+ */
2853
+ directRpc?: boolean;
1477
2854
  /**
1478
2855
  * Array of Discord servers, channels, and roles to join.
1479
2856
  */
@@ -1494,6 +2871,10 @@ export declare namespace RuleCreateParams {
1494
2871
  * Flag indicating whether the verified multiplier is enabled.
1495
2872
  */
1496
2873
  enableVerifiedMultiplier?: boolean;
2874
+ /**
2875
+ * Type of ERC20 token for the loyalty rule.
2876
+ */
2877
+ erc20Type?: 'erc20' | 'native';
1497
2878
  /**
1498
2879
  * Fill source of the order for the token sale
1499
2880
  */
@@ -1502,6 +2883,14 @@ export declare namespace RuleCreateParams {
1502
2883
  * Percentage reward given to a user for their first referral.
1503
2884
  */
1504
2885
  firstReferralReward?: number | null;
2886
+ /**
2887
+ * Name of the GitHub branch to check for PR merge.
2888
+ */
2889
+ githubBranchName?: string | null;
2890
+ /**
2891
+ * URL of the GitHub repository to check for star.
2892
+ */
2893
+ githubRepoUrl?: string | null;
1505
2894
  /**
1506
2895
  * Flag indicating whether the fill source is included.
1507
2896
  */
@@ -1510,10 +2899,6 @@ export declare namespace RuleCreateParams {
1510
2899
  * Indicates if the item has never been sold.
1511
2900
  */
1512
2901
  hasNeverSold?: boolean;
1513
- /**
1514
- * Flag indicating whether the order source is included.
1515
- */
1516
- hasOrderSource?: boolean;
1517
2902
  /**
1518
2903
  * Indicates if the full royalty has been paid for items.
1519
2904
  */
@@ -1530,10 +2915,18 @@ export declare namespace RuleCreateParams {
1530
2915
  * URL of the image associated with the rule.
1531
2916
  */
1532
2917
  imageUrl?: string | null;
2918
+ /**
2919
+ * If enabled, the first transaction done on the platform will complete this rule
2920
+ */
2921
+ isCheckInOnEveryTxn?: boolean;
1533
2922
  /**
1534
2923
  * Indicates if the multiplier has been applied to rewards.
1535
2924
  */
1536
- isMultiplierApplied?: boolean;
2925
+ isMultiplierApplied?: boolean;
2926
+ /**
2927
+ * Flag indicating if the rule is restricted to new users.
2928
+ */
2929
+ isRestrictedToNewUsers?: boolean;
1537
2930
  /**
1538
2931
  * Flag indicating if rewards are applied retroactively.
1539
2932
  */
@@ -1546,6 +2939,10 @@ export declare namespace RuleCreateParams {
1546
2939
  * Optional link associated with the metadata.
1547
2940
  */
1548
2941
  link?: string | null;
2942
+ /**
2943
+ * Liquidity pool details.
2944
+ */
2945
+ liquidity?: Metadata.Liquidity;
1549
2946
  /**
1550
2947
  * Maximum quantity constraint for token holding.
1551
2948
  */
@@ -1579,17 +2976,33 @@ export declare namespace RuleCreateParams {
1579
2976
  */
1580
2977
  onlyRewardSingleTokenOwnership?: boolean | null;
1581
2978
  /**
1582
- * Order source of the order for the token sale
2979
+ * Pre-generated text template that will be used to prefill the post content.
1583
2980
  */
1584
- orderSource?: string;
2981
+ preGeneratedPostText?: string | null;
1585
2982
  /**
1586
2983
  * Promotional code associated with the rule.
1587
2984
  */
1588
2985
  promoCode?: string;
2986
+ /**
2987
+ * URL of the CSV file containing promo codes.
2988
+ */
2989
+ promoCodeCsvUrl?: string;
2990
+ /**
2991
+ * Numbers of the promotional code to be generated.
2992
+ */
2993
+ promoCodeLength?: number | null;
2994
+ /**
2995
+ * Type of the promotional code.
2996
+ */
2997
+ promoCodeType?: 'code' | 'csv' | 'generate';
1589
2998
  /**
1590
2999
  * Array defining ranges and corresponding rewards.
1591
3000
  */
1592
3001
  range?: Array<Metadata.Range>;
3002
+ /**
3003
+ * ID of the Reddit post.
3004
+ */
3005
+ redditPostId?: string | null;
1593
3006
  /**
1594
3007
  * Object defining referral requirements.
1595
3008
  */
@@ -1598,10 +3011,55 @@ export declare namespace RuleCreateParams {
1598
3011
  * Lump sum reward given to a referrer.
1599
3012
  */
1600
3013
  referrerReward?: number | null;
3014
+ /**
3015
+ * Loyalty currency ID of the referrer reward.
3016
+ */
3017
+ referrerRewardLoyaltyCurrencyId?: string | null;
3018
+ /**
3019
+ * Flag indicating if the post link is required.
3020
+ */
3021
+ requirePostLink?: boolean | null;
3022
+ /**
3023
+ * Flag indicating if media metadata is required.
3024
+ */
3025
+ requirePostMediaLink?: boolean | null;
3026
+ /**
3027
+ * Flag indicating if the rule can also reward badges per range.
3028
+ */
3029
+ rewardBadgePerRange?: boolean;
3030
+ /**
3031
+ * Flag indicating if the reward is rewarded by batch.
3032
+ */
3033
+ rewardByBatch?: boolean | null;
3034
+ /**
3035
+ * Criteria to evaluate the reward.
3036
+ */
3037
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
3038
+ /**
3039
+ * Flag indicating if the reward is rewarded per action.
3040
+ */
3041
+ rewardPerAction?: boolean | null;
1601
3042
  /**
1602
3043
  * Flag indicating if rewards are given per impression.
1603
3044
  */
1604
3045
  rewardPerImpression?: boolean | null;
3046
+ /**
3047
+ * Flag indicating if the rule should reward based on value of traded tokens
3048
+ * instead of count.
3049
+ */
3050
+ rewardPerValue?: boolean;
3051
+ /**
3052
+ * Flag indicating if the rule should reward quality posts.
3053
+ */
3054
+ rewardQualityPosts?: boolean;
3055
+ /**
3056
+ * Wallet address of the user can only be used if userId is not provided
3057
+ */
3058
+ royaltyAddress?: string;
3059
+ /**
3060
+ * Royalty percentage of the item.
3061
+ */
3062
+ royaltyPercentage?: number;
1605
3063
  /**
1606
3064
  * Currency associated with sales.
1607
3065
  */
@@ -1625,7 +3083,7 @@ export declare namespace RuleCreateParams {
1625
3083
  /**
1626
3084
  * Social media platform associated with the rule.
1627
3085
  */
1628
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
3086
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
1629
3087
  /**
1630
3088
  * URL of the social platform's logo.
1631
3089
  */
@@ -1634,10 +3092,18 @@ export declare namespace RuleCreateParams {
1634
3092
  * Name of the social platform.
1635
3093
  */
1636
3094
  socialPlatformName?: string | null;
3095
+ /**
3096
+ * ID of the Steam app.
3097
+ */
3098
+ steamAppId?: string | null;
1637
3099
  /**
1638
3100
  * Array of streak milestones and corresponding rewards.
1639
3101
  */
1640
3102
  streakArray?: Array<Metadata.StreakArray> | null;
3103
+ /**
3104
+ * Metadata for swap loyalty rules
3105
+ */
3106
+ swap?: Metadata.Swap;
1641
3107
  /**
1642
3108
  * ID of the Telegram channel.
1643
3109
  */
@@ -1650,6 +3116,11 @@ export declare namespace RuleCreateParams {
1650
3116
  * Flag indicating if all contracts are tracked.
1651
3117
  */
1652
3118
  trackAllContracts?: boolean | null;
3119
+ /**
3120
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3121
+ * completed once the progress is 100%.
3122
+ */
3123
+ trackProgress?: boolean | null;
1653
3124
  /**
1654
3125
  * URL of the associated Twitter account.
1655
3126
  */
@@ -1685,7 +3156,15 @@ export declare namespace RuleCreateParams {
1685
3156
  /**
1686
3157
  * Type of wallet associated with the rule.
1687
3158
  */
1688
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
3159
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
3160
+ /**
3161
+ * ID of the Youtube channel.
3162
+ */
3163
+ youtubeChannelId?: string | null;
3164
+ /**
3165
+ * ID of the Youtube video.
3166
+ */
3167
+ youtubeVideoId?: string | null;
1689
3168
  }
1690
3169
  namespace Metadata {
1691
3170
  interface Collection {
@@ -1700,7 +3179,7 @@ export declare namespace RuleCreateParams {
1700
3179
  /**
1701
3180
  * Blockchain network of the collection.
1702
3181
  */
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';
3182
+ 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
3183
  }
1705
3184
  /**
1706
3185
  * Object containing details for the call-to-action.
@@ -1765,6 +3244,49 @@ export declare namespace RuleCreateParams {
1765
3244
  */
1766
3245
  id: string;
1767
3246
  }
3247
+ /**
3248
+ * Liquidity pool details.
3249
+ */
3250
+ interface Liquidity {
3251
+ /**
3252
+ * Calculation type of the liquidity pool.
3253
+ */
3254
+ calculationType?: 'fixed' | 'custom';
3255
+ /**
3256
+ * Custom function to calculate the the reward amount based on the liquidity
3257
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3258
+ * USD.
3259
+ */
3260
+ customFunction?: string;
3261
+ /**
3262
+ * Liquidity provided per day in USD
3263
+ */
3264
+ liquidityPerDay?: number;
3265
+ /**
3266
+ * Blockchain network of the liquidity pool.
3267
+ */
3268
+ 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';
3269
+ /**
3270
+ * Indicates if only in-range liquidity is rewarded.
3271
+ */
3272
+ onlyRewardInRangeLiquidity?: boolean;
3273
+ /**
3274
+ * Array of liquidity pools associated with the rule.
3275
+ */
3276
+ pools?: Array<Liquidity.Pool>;
3277
+ /**
3278
+ * Protocol of the liquidity pool.
3279
+ */
3280
+ protocol?: string;
3281
+ }
3282
+ namespace Liquidity {
3283
+ interface Pool {
3284
+ /**
3285
+ * Unique identifier of the liquidity pool.
3286
+ */
3287
+ id: string;
3288
+ }
3289
+ }
1768
3290
  interface Range {
1769
3291
  /**
1770
3292
  * Reward amount for this range.
@@ -1778,6 +3300,14 @@ export declare namespace RuleCreateParams {
1778
3300
  * Start value of the range.
1779
3301
  */
1780
3302
  startRange: number;
3303
+ /**
3304
+ * ID of the loyalty badge for this range.
3305
+ */
3306
+ loyaltyBadgeId?: string;
3307
+ /**
3308
+ * Amount of the loyalty multiplier for this range.
3309
+ */
3310
+ loyaltyMultiplierAmount?: number;
1781
3311
  }
1782
3312
  /**
1783
3313
  * Object defining referral requirements.
@@ -1821,18 +3351,14 @@ export declare namespace RuleCreateParams {
1821
3351
  * Object containing details of the associated smart contract.
1822
3352
  */
1823
3353
  interface SmartContract {
1824
- /**
1825
- * ABI of the smart contract.
1826
- */
1827
- abi?: string | null;
1828
3354
  /**
1829
3355
  * Mapping of addresses for the smart contract.
1830
3356
  */
1831
3357
  addressMapping?: string | null;
1832
3358
  /**
1833
- * Array of bonus details applied to the rule.
3359
+ * Object containing details of the amount multiplier from the event.
1834
3360
  */
1835
- bonus?: Array<SmartContract.Bonus> | null;
3361
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1836
3362
  /**
1837
3363
  * ID of the smart contract.
1838
3364
  */
@@ -1841,58 +3367,28 @@ export declare namespace RuleCreateParams {
1841
3367
  * Criteria to evaluate the smart contract event.
1842
3368
  */
1843
3369
  criteria?: 'everyEvent' | 'byParameter' | null;
1844
- /**
1845
- * Time range applied to the rule.
1846
- */
1847
- customRange?: SmartContract.CustomRange | null;
1848
3370
  /**
1849
3371
  * Event emitted by the smart contract.
1850
3372
  */
1851
3373
  event?: string | null;
1852
- /**
1853
- * Maximum value allowed for the parameter.
1854
- */
1855
- max?: number | null;
1856
3374
  /**
1857
3375
  * Array of parameters for the smart contract.
1858
3376
  */
1859
3377
  params?: Array<SmartContract.Param> | null;
1860
3378
  /**
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.
3379
+ * Type of the smart contract interaction.
1870
3380
  */
1871
- withMax?: boolean | null;
3381
+ type?: 'function' | 'event' | null;
1872
3382
  }
1873
3383
  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
3384
  /**
1885
- * Time range applied to the rule.
3385
+ * Object containing details of the amount multiplier from the event.
1886
3386
  */
1887
- interface CustomRange {
1888
- /**
1889
- * End time of the custom range.
1890
- */
1891
- endsAt?: string | null;
3387
+ interface AmountMultiplier {
1892
3388
  /**
1893
- * Start time of the custom range.
3389
+ * Mapping of the value for the smart contract.
1894
3390
  */
1895
- startsAt?: string | null;
3391
+ valueMapping?: string | null;
1896
3392
  }
1897
3393
  interface Param {
1898
3394
  /**
@@ -1929,6 +3425,24 @@ export declare namespace RuleCreateParams {
1929
3425
  */
1930
3426
  streakMilestone: number;
1931
3427
  }
3428
+ /**
3429
+ * Metadata for swap loyalty rules
3430
+ */
3431
+ interface Swap {
3432
+ provider?: 'any' | 'relay' | 'lifi';
3433
+ relayReferrerId?: string;
3434
+ requireCrossChainSwap?: boolean;
3435
+ swappedToChain?: 'any' | number | string;
3436
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3437
+ tokenMode?: 'any' | 'specific';
3438
+ trackTokenAmount?: boolean;
3439
+ }
3440
+ namespace Swap {
3441
+ interface SwappedToToken {
3442
+ address: string;
3443
+ chainId: string;
3444
+ }
3445
+ }
1932
3446
  }
1933
3447
  interface Collection {
1934
3448
  /**
@@ -1938,7 +3452,11 @@ export declare namespace RuleCreateParams {
1938
3452
  /**
1939
3453
  * Blockchain network for the collection
1940
3454
  */
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';
3455
+ 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';
3456
+ /**
3457
+ * Symbol of the collection.
3458
+ */
3459
+ symbol?: string;
1942
3460
  }
1943
3461
  }
1944
3462
  export interface RuleUpdateParams {
@@ -1954,10 +3472,14 @@ export interface RuleUpdateParams {
1954
3472
  * Name of the loyalty rule
1955
3473
  */
1956
3474
  name: string;
3475
+ /**
3476
+ * The type of claim for the reward
3477
+ */
3478
+ claimType?: 'manual' | 'auto' | null;
1957
3479
  /**
1958
3480
  * Blockchain address of the associated collection
1959
3481
  */
1960
- collectionAddress?: string;
3482
+ collectionAddress?: string | null;
1961
3483
  /**
1962
3484
  * List of associated collections
1963
3485
  */
@@ -1982,10 +3504,18 @@ export interface RuleUpdateParams {
1982
3504
  * Effective start time of the rule
1983
3505
  */
1984
3506
  effectiveStartTime?: string | null;
3507
+ /**
3508
+ * ID of the external integration
3509
+ */
3510
+ externalIntegrationId?: string | null;
1985
3511
  /**
1986
3512
  * Frequency of the rule execution
1987
3513
  */
1988
3514
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
3515
+ /**
3516
+ * Optional stratus function id for the rule
3517
+ */
3518
+ functionId?: string | null;
1989
3519
  /**
1990
3520
  * Whether to hide this rule in the user interface
1991
3521
  */
@@ -1993,7 +3523,7 @@ export interface RuleUpdateParams {
1993
3523
  /**
1994
3524
  * Time interval for recurring rule execution
1995
3525
  */
1996
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
3526
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1997
3527
  /**
1998
3528
  * Whether this rule is required for participation
1999
3529
  */
@@ -2002,6 +3532,16 @@ export interface RuleUpdateParams {
2002
3532
  * ID of the rule group section to associate with the rule
2003
3533
  */
2004
3534
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
3535
+ /**
3536
+ * The interval for the max amount. Available for the smart contract and external
3537
+ * rules.
3538
+ */
3539
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
3540
+ /**
3541
+ * The maximum amount of points a user can earn per interval. Available for the
3542
+ * smart contract and external rules.
3543
+ */
3544
+ maxAmountPerInterval?: number | null;
2005
3545
  /**
2006
3546
  * URL of the media to be displayed
2007
3547
  */
@@ -2013,23 +3553,35 @@ export interface RuleUpdateParams {
2013
3553
  /**
2014
3554
  * Blockchain network where the rule will apply
2015
3555
  */
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';
3556
+ 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
3557
  /**
2018
3558
  * ID for associated OAuth credentials
2019
3559
  */
2020
3560
  oauthCredentialsId?: string | null;
3561
+ /**
3562
+ * The lifetime of the reward
3563
+ */
3564
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
2021
3565
  /**
2022
3566
  * Type of reward issued by this rule
2023
3567
  */
2024
- rewardType?: 'points' | 'multiplier';
3568
+ rewardType?: 'points' | 'multiplier' | 'badge';
3569
+ /**
3570
+ * URL of the Shopify store
3571
+ */
3572
+ shopifyStoreUrl?: string | null;
3573
+ /**
3574
+ * Whether to show this rule before the start time
3575
+ */
3576
+ showBeforeStart?: boolean;
2025
3577
  /**
2026
3578
  * Start time for the loyalty rule
2027
3579
  */
2028
3580
  startTime?: string | null;
2029
3581
  /**
2030
- * Optional subscription identifier for the rule
3582
+ * Optional stratus subscription id for the rule
2031
3583
  */
2032
- subscriptionIdentifier?: string | null;
3584
+ subscriptionId?: string | null;
2033
3585
  }
2034
3586
  export declare namespace RuleUpdateParams {
2035
3587
  interface Collection {
@@ -2040,12 +3592,25 @@ export declare namespace RuleUpdateParams {
2040
3592
  /**
2041
3593
  * Blockchain network for the collection
2042
3594
  */
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';
3595
+ 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';
3596
+ /**
3597
+ * Symbol of the collection.
3598
+ */
3599
+ symbol?: string;
2044
3600
  }
2045
3601
  /**
2046
3602
  * Additional metadata for the loyalty rule
2047
3603
  */
2048
3604
  interface Metadata {
3605
+ /**
3606
+ * Array of loyalty rule IDs that count as check-in when completed. If ["any"] then
3607
+ * any rule completions count as check-in.
3608
+ */
3609
+ autoCheckInRuleIds?: Array<(string & {}) | 'any'> | null;
3610
+ /**
3611
+ * Number of tokens per batch.
3612
+ */
3613
+ batchSize?: number | null;
2049
3614
  /**
2050
3615
  * Text displayed on the action button.
2051
3616
  */
@@ -2065,7 +3630,7 @@ export declare namespace RuleUpdateParams {
2065
3630
  /**
2066
3631
  * Text to check in the Twitter post, username, or bio.
2067
3632
  */
2068
- checkText?: string | null;
3633
+ checkText?: string | Array<string> | null;
2069
3634
  /**
2070
3635
  * Array of collections associated with the rule.
2071
3636
  */
@@ -2073,7 +3638,13 @@ export declare namespace RuleUpdateParams {
2073
3638
  /**
2074
3639
  * Conditions for completing the profile.
2075
3640
  */
2076
- completeProfileConditions?: Record<string, boolean> | null;
3641
+ completeProfileConditions?: {
3642
+ [key: string]: boolean;
3643
+ } | null;
3644
+ /**
3645
+ * Description of the external rule condition (only for external rules)
3646
+ */
3647
+ conditionDescription?: string;
2077
3648
  /**
2078
3649
  * Object containing details for the call-to-action.
2079
3650
  */
@@ -2082,6 +3653,10 @@ export declare namespace RuleUpdateParams {
2082
3653
  * API key for custom rewards integration.
2083
3654
  */
2084
3655
  customRewardsApiKey?: string;
3656
+ /**
3657
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
3658
+ */
3659
+ directRpc?: boolean;
2085
3660
  /**
2086
3661
  * Array of Discord servers, channels, and roles to join.
2087
3662
  */
@@ -2102,6 +3677,10 @@ export declare namespace RuleUpdateParams {
2102
3677
  * Flag indicating whether the verified multiplier is enabled.
2103
3678
  */
2104
3679
  enableVerifiedMultiplier?: boolean;
3680
+ /**
3681
+ * Type of ERC20 token for the loyalty rule.
3682
+ */
3683
+ erc20Type?: 'erc20' | 'native';
2105
3684
  /**
2106
3685
  * Fill source of the order for the token sale
2107
3686
  */
@@ -2110,6 +3689,14 @@ export declare namespace RuleUpdateParams {
2110
3689
  * Percentage reward given to a user for their first referral.
2111
3690
  */
2112
3691
  firstReferralReward?: number | null;
3692
+ /**
3693
+ * Name of the GitHub branch to check for PR merge.
3694
+ */
3695
+ githubBranchName?: string | null;
3696
+ /**
3697
+ * URL of the GitHub repository to check for star.
3698
+ */
3699
+ githubRepoUrl?: string | null;
2113
3700
  /**
2114
3701
  * Flag indicating whether the fill source is included.
2115
3702
  */
@@ -2118,10 +3705,6 @@ export declare namespace RuleUpdateParams {
2118
3705
  * Indicates if the item has never been sold.
2119
3706
  */
2120
3707
  hasNeverSold?: boolean;
2121
- /**
2122
- * Flag indicating whether the order source is included.
2123
- */
2124
- hasOrderSource?: boolean;
2125
3708
  /**
2126
3709
  * Indicates if the full royalty has been paid for items.
2127
3710
  */
@@ -2138,10 +3721,18 @@ export declare namespace RuleUpdateParams {
2138
3721
  * URL of the image associated with the rule.
2139
3722
  */
2140
3723
  imageUrl?: string | null;
3724
+ /**
3725
+ * If enabled, the first transaction done on the platform will complete this rule
3726
+ */
3727
+ isCheckInOnEveryTxn?: boolean;
2141
3728
  /**
2142
3729
  * Indicates if the multiplier has been applied to rewards.
2143
3730
  */
2144
3731
  isMultiplierApplied?: boolean;
3732
+ /**
3733
+ * Flag indicating if the rule is restricted to new users.
3734
+ */
3735
+ isRestrictedToNewUsers?: boolean;
2145
3736
  /**
2146
3737
  * Flag indicating if rewards are applied retroactively.
2147
3738
  */
@@ -2154,6 +3745,10 @@ export declare namespace RuleUpdateParams {
2154
3745
  * Optional link associated with the metadata.
2155
3746
  */
2156
3747
  link?: string | null;
3748
+ /**
3749
+ * Liquidity pool details.
3750
+ */
3751
+ liquidity?: Metadata.Liquidity;
2157
3752
  /**
2158
3753
  * Maximum quantity constraint for token holding.
2159
3754
  */
@@ -2187,17 +3782,33 @@ export declare namespace RuleUpdateParams {
2187
3782
  */
2188
3783
  onlyRewardSingleTokenOwnership?: boolean | null;
2189
3784
  /**
2190
- * Order source of the order for the token sale
3785
+ * Pre-generated text template that will be used to prefill the post content.
2191
3786
  */
2192
- orderSource?: string;
3787
+ preGeneratedPostText?: string | null;
2193
3788
  /**
2194
3789
  * Promotional code associated with the rule.
2195
3790
  */
2196
3791
  promoCode?: string;
3792
+ /**
3793
+ * URL of the CSV file containing promo codes.
3794
+ */
3795
+ promoCodeCsvUrl?: string;
3796
+ /**
3797
+ * Numbers of the promotional code to be generated.
3798
+ */
3799
+ promoCodeLength?: number | null;
3800
+ /**
3801
+ * Type of the promotional code.
3802
+ */
3803
+ promoCodeType?: 'code' | 'csv' | 'generate';
2197
3804
  /**
2198
3805
  * Array defining ranges and corresponding rewards.
2199
3806
  */
2200
3807
  range?: Array<Metadata.Range>;
3808
+ /**
3809
+ * ID of the Reddit post.
3810
+ */
3811
+ redditPostId?: string | null;
2201
3812
  /**
2202
3813
  * Object defining referral requirements.
2203
3814
  */
@@ -2206,10 +3817,55 @@ export declare namespace RuleUpdateParams {
2206
3817
  * Lump sum reward given to a referrer.
2207
3818
  */
2208
3819
  referrerReward?: number | null;
3820
+ /**
3821
+ * Loyalty currency ID of the referrer reward.
3822
+ */
3823
+ referrerRewardLoyaltyCurrencyId?: string | null;
3824
+ /**
3825
+ * Flag indicating if the post link is required.
3826
+ */
3827
+ requirePostLink?: boolean | null;
3828
+ /**
3829
+ * Flag indicating if media metadata is required.
3830
+ */
3831
+ requirePostMediaLink?: boolean | null;
3832
+ /**
3833
+ * Flag indicating if the rule can also reward badges per range.
3834
+ */
3835
+ rewardBadgePerRange?: boolean;
3836
+ /**
3837
+ * Flag indicating if the reward is rewarded by batch.
3838
+ */
3839
+ rewardByBatch?: boolean | null;
3840
+ /**
3841
+ * Criteria to evaluate the reward.
3842
+ */
3843
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
3844
+ /**
3845
+ * Flag indicating if the reward is rewarded per action.
3846
+ */
3847
+ rewardPerAction?: boolean | null;
2209
3848
  /**
2210
3849
  * Flag indicating if rewards are given per impression.
2211
3850
  */
2212
3851
  rewardPerImpression?: boolean | null;
3852
+ /**
3853
+ * Flag indicating if the rule should reward based on value of traded tokens
3854
+ * instead of count.
3855
+ */
3856
+ rewardPerValue?: boolean;
3857
+ /**
3858
+ * Flag indicating if the rule should reward quality posts.
3859
+ */
3860
+ rewardQualityPosts?: boolean;
3861
+ /**
3862
+ * Wallet address of the user can only be used if userId is not provided
3863
+ */
3864
+ royaltyAddress?: string;
3865
+ /**
3866
+ * Royalty percentage of the item.
3867
+ */
3868
+ royaltyPercentage?: number;
2213
3869
  /**
2214
3870
  * Currency associated with sales.
2215
3871
  */
@@ -2233,7 +3889,7 @@ export declare namespace RuleUpdateParams {
2233
3889
  /**
2234
3890
  * Social media platform associated with the rule.
2235
3891
  */
2236
- socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | null;
3892
+ socialPlatform?: 'Custom' | 'Discord' | 'EpicGames' | 'Instagram' | 'Steam' | 'Telegram' | 'TikTok' | 'Twitch' | 'X(Twitter)' | 'YouTube' | 'Google' | 'GitHub' | 'Reddit' | null;
2237
3893
  /**
2238
3894
  * URL of the social platform's logo.
2239
3895
  */
@@ -2242,10 +3898,18 @@ export declare namespace RuleUpdateParams {
2242
3898
  * Name of the social platform.
2243
3899
  */
2244
3900
  socialPlatformName?: string | null;
3901
+ /**
3902
+ * ID of the Steam app.
3903
+ */
3904
+ steamAppId?: string | null;
2245
3905
  /**
2246
3906
  * Array of streak milestones and corresponding rewards.
2247
3907
  */
2248
3908
  streakArray?: Array<Metadata.StreakArray> | null;
3909
+ /**
3910
+ * Metadata for swap loyalty rules
3911
+ */
3912
+ swap?: Metadata.Swap;
2249
3913
  /**
2250
3914
  * ID of the Telegram channel.
2251
3915
  */
@@ -2258,6 +3922,11 @@ export declare namespace RuleUpdateParams {
2258
3922
  * Flag indicating if all contracts are tracked.
2259
3923
  */
2260
3924
  trackAllContracts?: boolean | null;
3925
+ /**
3926
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3927
+ * completed once the progress is 100%.
3928
+ */
3929
+ trackProgress?: boolean | null;
2261
3930
  /**
2262
3931
  * URL of the associated Twitter account.
2263
3932
  */
@@ -2293,7 +3962,15 @@ export declare namespace RuleUpdateParams {
2293
3962
  /**
2294
3963
  * Type of wallet associated with the rule.
2295
3964
  */
2296
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
3965
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | 'flow_cadence' | 'substrate' | null;
3966
+ /**
3967
+ * ID of the Youtube channel.
3968
+ */
3969
+ youtubeChannelId?: string | null;
3970
+ /**
3971
+ * ID of the Youtube video.
3972
+ */
3973
+ youtubeVideoId?: string | null;
2297
3974
  }
2298
3975
  namespace Metadata {
2299
3976
  interface Collection {
@@ -2308,7 +3985,7 @@ export declare namespace RuleUpdateParams {
2308
3985
  /**
2309
3986
  * Blockchain network of the collection.
2310
3987
  */
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';
3988
+ 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
3989
  }
2313
3990
  /**
2314
3991
  * Object containing details for the call-to-action.
@@ -2373,6 +4050,49 @@ export declare namespace RuleUpdateParams {
2373
4050
  */
2374
4051
  id: string;
2375
4052
  }
4053
+ /**
4054
+ * Liquidity pool details.
4055
+ */
4056
+ interface Liquidity {
4057
+ /**
4058
+ * Calculation type of the liquidity pool.
4059
+ */
4060
+ calculationType?: 'fixed' | 'custom';
4061
+ /**
4062
+ * Custom function to calculate the the reward amount based on the liquidity
4063
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
4064
+ * USD.
4065
+ */
4066
+ customFunction?: string;
4067
+ /**
4068
+ * Liquidity provided per day in USD
4069
+ */
4070
+ liquidityPerDay?: number;
4071
+ /**
4072
+ * Blockchain network of the liquidity pool.
4073
+ */
4074
+ 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';
4075
+ /**
4076
+ * Indicates if only in-range liquidity is rewarded.
4077
+ */
4078
+ onlyRewardInRangeLiquidity?: boolean;
4079
+ /**
4080
+ * Array of liquidity pools associated with the rule.
4081
+ */
4082
+ pools?: Array<Liquidity.Pool>;
4083
+ /**
4084
+ * Protocol of the liquidity pool.
4085
+ */
4086
+ protocol?: string;
4087
+ }
4088
+ namespace Liquidity {
4089
+ interface Pool {
4090
+ /**
4091
+ * Unique identifier of the liquidity pool.
4092
+ */
4093
+ id: string;
4094
+ }
4095
+ }
2376
4096
  interface Range {
2377
4097
  /**
2378
4098
  * Reward amount for this range.
@@ -2386,6 +4106,14 @@ export declare namespace RuleUpdateParams {
2386
4106
  * Start value of the range.
2387
4107
  */
2388
4108
  startRange: number;
4109
+ /**
4110
+ * ID of the loyalty badge for this range.
4111
+ */
4112
+ loyaltyBadgeId?: string;
4113
+ /**
4114
+ * Amount of the loyalty multiplier for this range.
4115
+ */
4116
+ loyaltyMultiplierAmount?: number;
2389
4117
  }
2390
4118
  /**
2391
4119
  * Object defining referral requirements.
@@ -2429,18 +4157,14 @@ export declare namespace RuleUpdateParams {
2429
4157
  * Object containing details of the associated smart contract.
2430
4158
  */
2431
4159
  interface SmartContract {
2432
- /**
2433
- * ABI of the smart contract.
2434
- */
2435
- abi?: string | null;
2436
4160
  /**
2437
4161
  * Mapping of addresses for the smart contract.
2438
4162
  */
2439
4163
  addressMapping?: string | null;
2440
4164
  /**
2441
- * Array of bonus details applied to the rule.
4165
+ * Object containing details of the amount multiplier from the event.
2442
4166
  */
2443
- bonus?: Array<SmartContract.Bonus> | null;
4167
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2444
4168
  /**
2445
4169
  * ID of the smart contract.
2446
4170
  */
@@ -2449,58 +4173,28 @@ export declare namespace RuleUpdateParams {
2449
4173
  * Criteria to evaluate the smart contract event.
2450
4174
  */
2451
4175
  criteria?: 'everyEvent' | 'byParameter' | null;
2452
- /**
2453
- * Time range applied to the rule.
2454
- */
2455
- customRange?: SmartContract.CustomRange | null;
2456
4176
  /**
2457
4177
  * Event emitted by the smart contract.
2458
4178
  */
2459
4179
  event?: string | null;
2460
- /**
2461
- * Maximum value allowed for the parameter.
2462
- */
2463
- max?: number | null;
2464
4180
  /**
2465
4181
  * Array of parameters for the smart contract.
2466
4182
  */
2467
4183
  params?: Array<SmartContract.Param> | null;
2468
4184
  /**
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.
4185
+ * Type of the smart contract interaction.
2478
4186
  */
2479
- withMax?: boolean | null;
4187
+ type?: 'function' | 'event' | null;
2480
4188
  }
2481
4189
  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
4190
  /**
2493
- * Time range applied to the rule.
4191
+ * Object containing details of the amount multiplier from the event.
2494
4192
  */
2495
- interface CustomRange {
2496
- /**
2497
- * End time of the custom range.
2498
- */
2499
- endsAt?: string | null;
4193
+ interface AmountMultiplier {
2500
4194
  /**
2501
- * Start time of the custom range.
4195
+ * Mapping of the value for the smart contract.
2502
4196
  */
2503
- startsAt?: string | null;
4197
+ valueMapping?: string | null;
2504
4198
  }
2505
4199
  interface Param {
2506
4200
  /**
@@ -2537,15 +4231,55 @@ export declare namespace RuleUpdateParams {
2537
4231
  */
2538
4232
  streakMilestone: number;
2539
4233
  }
4234
+ /**
4235
+ * Metadata for swap loyalty rules
4236
+ */
4237
+ interface Swap {
4238
+ provider?: 'any' | 'relay' | 'lifi';
4239
+ relayReferrerId?: string;
4240
+ requireCrossChainSwap?: boolean;
4241
+ swappedToChain?: 'any' | number | string;
4242
+ swappedToTokens?: Array<Swap.SwappedToToken>;
4243
+ tokenMode?: 'any' | 'specific';
4244
+ trackTokenAmount?: boolean;
4245
+ }
4246
+ namespace Swap {
4247
+ interface SwappedToToken {
4248
+ address: string;
4249
+ chainId: string;
4250
+ }
4251
+ }
2540
4252
  }
2541
4253
  }
2542
4254
  export interface RuleListParams {
4255
+ /**
4256
+ * IDs of the users to filter results by
4257
+ */
4258
+ allotedToUserId?: string | Array<string>;
4259
+ /**
4260
+ * ID of the user group to filter results by
4261
+ */
4262
+ allotedUserGroupId?: string;
2543
4263
  /**
2544
4264
  * Address of the collection to filter by
2545
4265
  */
2546
4266
  collectionAddress?: string;
2547
4267
  /**
2548
- * Maximum number of records to return (max 1000)
4268
+ * Whether to include deleted/archived records
4269
+ */
4270
+ includeDeleted?: boolean | null;
4271
+ /**
4272
+ * If true this will only return active rules, the rules for which the startTime is
4273
+ * in the past and the endTime is in the future
4274
+ */
4275
+ isActive?: 'true' | 'false';
4276
+ /**
4277
+ * If true this will only return special rules, special rules are the rules that
4278
+ * are used for anti sybil as honey pot
4279
+ */
4280
+ isSpecial?: 'true' | 'false';
4281
+ /**
4282
+ * Maximum number of records to return (max 100)
2549
4283
  */
2550
4284
  limit?: number;
2551
4285
  /**
@@ -2569,6 +4303,12 @@ export interface RuleListParams {
2569
4303
  */
2570
4304
  websiteId?: string;
2571
4305
  }
4306
+ export interface RuleDeleteParams {
4307
+ /**
4308
+ * Whether to debit loyalty points
4309
+ */
4310
+ debitLoyaltyPoints?: string;
4311
+ }
2572
4312
  export interface RuleCompleteParams {
2573
4313
  /**
2574
4314
  * Override amount for the reward (rounded to nearest whole number). This will
@@ -2576,13 +4316,25 @@ export interface RuleCompleteParams {
2576
4316
  */
2577
4317
  amount?: number | null;
2578
4318
  /**
2579
- * Link to the comment made by user
4319
+ * Link to the post/comment made by user
4320
+ */
4321
+ contentUrl?: string;
4322
+ /**
4323
+ * Unique key to ensure idempotent requests.
2580
4324
  */
2581
- commentLink?: string;
4325
+ idempotencyKey?: string;
2582
4326
  /**
2583
4327
  * ID of the choice selected by the user
2584
4328
  */
2585
4329
  loyaltyQuestionChoiceId?: string;
4330
+ /**
4331
+ * Value to compare with the range
4332
+ */
4333
+ rangeValue?: number | null;
4334
+ /**
4335
+ * Flag indicating if the chain or required check should be skipped.
4336
+ */
4337
+ skipChainOrRequiredCheck?: boolean;
2586
4338
  /**
2587
4339
  * Unique identifier for the user
2588
4340
  */
@@ -2593,7 +4345,7 @@ export interface RuleCompleteParams {
2593
4345
  verificationCode?: string;
2594
4346
  /**
2595
4347
  * Flag indicating if only verification is required, this will not create a
2596
- * transaction and reward the user
4348
+ * transaction and reward the user.
2597
4349
  */
2598
4350
  verifyOnly?: string;
2599
4351
  /**
@@ -2602,11 +4354,25 @@ export interface RuleCompleteParams {
2602
4354
  walletAddress?: string;
2603
4355
  }
2604
4356
  export interface RuleGetStatusParams {
2605
- organizationId: string;
2606
- websiteId: string;
4357
+ /**
4358
+ * Number of items to return
4359
+ */
4360
+ limit?: number | null;
4361
+ /**
4362
+ * Unique identifier for the loyalty rule[s]
4363
+ */
4364
+ loyaltyRuleId?: string | Array<string>;
4365
+ organizationId?: string;
4366
+ /**
4367
+ * Starting after item
4368
+ */
4369
+ startingAfter?: string;
4370
+ userGroupId?: string;
2607
4371
  userId?: string;
4372
+ walletAddress?: string;
4373
+ websiteId?: string;
2608
4374
  }
2609
4375
  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, };
4376
+ 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
4377
  }
2612
4378
  //# sourceMappingURL=rules.d.ts.map