@namehash/ens-referrals 1.7.0 → 1.8.0

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.
@@ -49,6 +49,12 @@ interface BaseReferralProgramRules {
49
49
  * @example new URL("https://ensawards.org/ens-holiday-awards-rules")
50
50
  */
51
51
  rulesUrl: URL;
52
+ /**
53
+ * Whether the awards for this edition have been distributed.
54
+ *
55
+ * When `true` and `now > endTime`, the status transitions from `AwardsReview` to `Closed`.
56
+ */
57
+ areAwardsDistributed: boolean;
52
58
  }
53
59
  /**
54
60
  * Rules for a referral program edition whose `awardModel` is not recognized by this client version.
@@ -95,7 +101,7 @@ interface ReferralProgramRulesPieSplit extends BaseReferralProgramRules {
95
101
  maxQualifiedReferrers: number;
96
102
  }
97
103
  declare const validateReferralProgramRulesPieSplit: (rules: ReferralProgramRulesPieSplit) => void;
98
- declare const buildReferralProgramRulesPieSplit: (totalAwardPoolValue: PriceUsdc, maxQualifiedReferrers: number, startTime: UnixTimestamp, endTime: UnixTimestamp, subregistryId: AccountId, rulesUrl: URL) => ReferralProgramRulesPieSplit;
104
+ declare const buildReferralProgramRulesPieSplit: (totalAwardPoolValue: PriceUsdc, maxQualifiedReferrers: number, startTime: UnixTimestamp, endTime: UnixTimestamp, subregistryId: AccountId, rulesUrl: URL, areAwardsDistributed: boolean) => ReferralProgramRulesPieSplit;
99
105
 
100
106
  /**
101
107
  * An admin-imposed disqualification entry of a specific referrer in an edition.
@@ -153,7 +159,7 @@ interface ReferralProgramRulesRevShareLimit extends BaseReferralProgramRules {
153
159
  disqualifications: ReferralProgramEditionDisqualification[];
154
160
  }
155
161
  declare const validateReferralProgramRulesRevShareLimit: (rules: ReferralProgramRulesRevShareLimit) => void;
156
- declare const buildReferralProgramRulesRevShareLimit: (totalAwardPoolValue: PriceUsdc, minQualifiedRevenueContribution: PriceUsdc, qualifiedRevenueShare: number, startTime: UnixTimestamp, endTime: UnixTimestamp, subregistryId: AccountId, rulesUrl: URL, disqualifications?: ReferralProgramEditionDisqualification[]) => ReferralProgramRulesRevShareLimit;
162
+ declare const buildReferralProgramRulesRevShareLimit: (totalAwardPoolValue: PriceUsdc, minQualifiedRevenueContribution: PriceUsdc, qualifiedRevenueShare: number, startTime: UnixTimestamp, endTime: UnixTimestamp, subregistryId: AccountId, rulesUrl: URL, areAwardsDistributed: boolean, disqualifications?: ReferralProgramEditionDisqualification[]) => ReferralProgramRulesRevShareLimit;
157
163
  /**
158
164
  * Determine if a referrer is qualified under rev-share-limit rules.
159
165
  *
@@ -194,6 +200,13 @@ type ReferralProgramRules = ReferralProgramRulesPieSplit | ReferralProgramRulesR
194
200
  * @example "holiday-special" // Custom named edition
195
201
  */
196
202
  type ReferralProgramEditionSlug = string;
203
+ /**
204
+ * Regex pattern that all {@link ReferralProgramEditionSlug} values must match.
205
+ *
206
+ * Allows lowercase letters (a-z), digits (0-9), and hyphens (-).
207
+ * Must not start or end with a hyphen.
208
+ */
209
+ declare const REFERRAL_PROGRAM_EDITION_SLUG_PATTERN: RegExp;
197
210
  /**
198
211
  * Represents a referral program edition configuration.
199
212
  */
@@ -474,38 +487,6 @@ declare const validateAggregatedReferrerMetricsPieSplit: (metrics: AggregatedRef
474
487
  */
475
488
  declare const buildAggregatedReferrerMetricsPieSplit: (referrers: RankedReferrerMetricsPieSplit[], rules: ReferralProgramRulesPieSplit) => AggregatedReferrerMetricsPieSplit;
476
489
 
477
- /**
478
- * The type of referral program's status.
479
- */
480
- declare const ReferralProgramStatuses: {
481
- /**
482
- * Represents a referral program that has been announced, but hasn't started yet.
483
- */
484
- readonly Scheduled: "Scheduled";
485
- /**
486
- * Represents a currently ongoing referral program.
487
- */
488
- readonly Active: "Active";
489
- /**
490
- * Represents a referral program that has already ended.
491
- */
492
- readonly Closed: "Closed";
493
- };
494
- /**
495
- * The derived string union of possible {@link ReferralProgramStatuses}.
496
- */
497
- type ReferralProgramStatusId = (typeof ReferralProgramStatuses)[keyof typeof ReferralProgramStatuses];
498
- /**
499
- * Calculate the status of the referral program based on the current date
500
- * and program's timeframe available in its rules.
501
- *
502
- * @param referralProgramRules - Related referral program's rules containing
503
- * program's start date and end date.
504
- *
505
- * @param now - Current date in {@link UnixTimestamp} format.
506
- */
507
- declare const calcReferralProgramStatus: (referralProgramRules: ReferralProgramRules, now: UnixTimestamp) => ReferralProgramStatusId;
508
-
509
490
  /**
510
491
  * The type of referrer edition metrics data.
511
492
  */
@@ -545,6 +526,51 @@ interface ReferrerEditionMetricsUnrecognized {
545
526
  originalAwardModel: string;
546
527
  }
547
528
 
529
+ /**
530
+ * The type of referral program edition's status.
531
+ */
532
+ declare const ReferralProgramEditionStatuses: {
533
+ /**
534
+ * Represents a referral program edition that has been announced, but hasn't started yet.
535
+ */
536
+ readonly Scheduled: "Scheduled";
537
+ /**
538
+ * Represents a currently ongoing referral program edition.
539
+ */
540
+ readonly Active: "Active";
541
+ /**
542
+ * Represents a referral program edition that is still within its active window
543
+ * but whose award pool has been fully consumed.
544
+ *
545
+ * @note Not all award models may support this status.
546
+ */
547
+ readonly Exhausted: "Exhausted";
548
+ /**
549
+ * Represents a referral program edition that has passed its end time but whose awards have not yet
550
+ * been distributed. The edition is in a review window before full closure.
551
+ *
552
+ * Transitions to {@link ReferralProgramEditionStatuses.Closed} once `areAwardsDistributed` is set to `true`.
553
+ */
554
+ readonly AwardsReview: "AwardsReview";
555
+ /**
556
+ * Represents a referral program edition that has already ended and whose awards have been distributed.
557
+ */
558
+ readonly Closed: "Closed";
559
+ };
560
+ /**
561
+ * The derived string union of possible {@link ReferralProgramEditionStatuses}.
562
+ */
563
+ type ReferralProgramEditionStatusId = (typeof ReferralProgramEditionStatuses)[keyof typeof ReferralProgramEditionStatuses];
564
+ /**
565
+ * Calculate the base status of a referral program edition using only its rules and
566
+ * the current time (makes no consideration of the awards possibly being exhausted).
567
+ *
568
+ * @param rules - Related referral program's rules containing program's start/end date and
569
+ * `areAwardsDistributed` flag.
570
+ * @param now - Current date in {@link UnixTimestamp} format.
571
+ */
572
+ declare const calcBaseReferralProgramEditionStatus: (rules: BaseReferralProgramRules, now: UnixTimestamp) => ReferralProgramEditionStatusId;
573
+
548
574
  /**
549
575
  * Referrer edition metrics data for a specific referrer address on the pie-split leaderboard.
550
576
  *
@@ -583,10 +609,10 @@ interface ReferrerEditionMetricsRankedPieSplit {
583
609
  */
584
610
  aggregatedMetrics: AggregatedReferrerMetricsPieSplit;
585
611
  /**
586
- * The status of the referral program ("Scheduled", "Active", or "Closed")
612
+ * The status of the referral program edition
587
613
  * calculated based on the program's timing relative to {@link accurateAsOf}.
588
614
  */
589
- status: ReferralProgramStatusId;
615
+ status: ReferralProgramEditionStatusId;
590
616
  /**
591
617
  * The {@link UnixTimestamp} of when the data used to build the {@link ReferrerEditionMetricsRankedPieSplit} was accurate as of.
592
618
  */
@@ -629,10 +655,10 @@ interface ReferrerEditionMetricsUnrankedPieSplit {
629
655
  */
630
656
  aggregatedMetrics: AggregatedReferrerMetricsPieSplit;
631
657
  /**
632
- * The status of the referral program ("Scheduled", "Active", or "Closed")
658
+ * The status of the referral program edition
633
659
  * calculated based on the program's timing relative to {@link accurateAsOf}.
634
660
  */
635
- status: ReferralProgramStatusId;
661
+ status: ReferralProgramEditionStatusId;
636
662
  /**
637
663
  * The {@link UnixTimestamp} of when the data used to build the {@link ReferrerEditionMetricsUnrankedPieSplit} was accurate as of.
638
664
  */
@@ -645,6 +671,53 @@ interface ReferrerEditionMetricsUnrankedPieSplit {
645
671
  */
646
672
  type ReferrerEditionMetricsPieSplit = ReferrerEditionMetricsRankedPieSplit | ReferrerEditionMetricsUnrankedPieSplit;
647
673
 
674
+ /**
675
+ * Base fields shared by all edition summary variants.
676
+ */
677
+ interface BaseReferralProgramEditionSummary {
678
+ /**
679
+ * Discriminant: identifies the award model for this edition.
680
+ *
681
+ * @invariant Always equals `rules.awardModel`.
682
+ */
683
+ awardModel: ReferralProgramAwardModel;
684
+ /**
685
+ * Unique slug identifier for the edition.
686
+ */
687
+ slug: ReferralProgramEditionSlug;
688
+ /**
689
+ * Human-readable display name for the edition.
690
+ */
691
+ displayName: string;
692
+ /**
693
+ * The current runtime status of the edition.
694
+ */
695
+ status: ReferralProgramEditionStatusId;
696
+ /**
697
+ * The rules for this edition. Per-model subtypes narrow this to their specific rules type.
698
+ */
699
+ rules: BaseReferralProgramRules;
700
+ }
701
+ /**
702
+ * Edition summary for an edition whose `awardModel` is not recognized by this client version.
703
+ *
704
+ * @remarks
705
+ * This is a **client-side forward-compatibility** type only. It is never serialized or produced
706
+ * by the server. When the server sends a new award model, older clients preserve the edition
707
+ * summary rather than crashing, and downstream code should handle it gracefully.
708
+ */
709
+ interface ReferralProgramEditionSummaryUnrecognized extends BaseReferralProgramEditionSummary {
710
+ /**
711
+ * Discriminant — always `"unrecognized"`.
712
+ */
713
+ awardModel: typeof ReferralProgramAwardModels.Unrecognized;
714
+ /**
715
+ * The unrecognized rules — preserves `originalAwardModel` for logging/debugging.
716
+ */
717
+ rules: ReferralProgramRulesUnrecognized;
718
+ }
719
+ declare const validateBaseReferralProgramEditionSummary: (summary: BaseReferralProgramEditionSummary) => void;
720
+
648
721
  /**
649
722
  * Represents a leaderboard with the pie-split award model for any number of referrers.
650
723
  */
@@ -684,6 +757,28 @@ interface ReferrerLeaderboardPieSplit {
684
757
  }
685
758
  declare const buildReferrerLeaderboardPieSplit: (allReferrers: ReferrerMetrics[], rules: ReferralProgramRulesPieSplit, accurateAsOf: UnixTimestamp) => ReferrerLeaderboardPieSplit;
686
759
 
760
+ /**
761
+ * Edition summary for a `pie-split` referral program edition.
762
+ */
763
+ interface ReferralProgramEditionSummaryPieSplit extends BaseReferralProgramEditionSummary {
764
+ /**
765
+ * Discriminant — always `"pie-split"`.
766
+ *
767
+ * @invariant Always equals `rules.awardModel` ({@link ReferralProgramAwardModels.PieSplit}).
768
+ */
769
+ awardModel: typeof ReferralProgramAwardModels.PieSplit;
770
+ /**
771
+ * The pie-split rules for this edition.
772
+ */
773
+ rules: ReferralProgramRulesPieSplit;
774
+ }
775
+ declare const validateEditionSummaryPieSplit: (summary: ReferralProgramEditionSummaryPieSplit) => void;
776
+ /**
777
+ * Build a {@link ReferralProgramEditionSummaryPieSplit} from a pie-split edition config and the
778
+ * edition's leaderboard.
779
+ */
780
+ declare function buildEditionSummaryPieSplit(slug: ReferralProgramEditionSlug, displayName: string, rules: ReferralProgramRulesPieSplit, leaderboard: ReferrerLeaderboardPieSplit): ReferralProgramEditionSummaryPieSplit;
781
+
687
782
  /**
688
783
  * Extends {@link ReferrerMetrics} with computed base revenue contribution.
689
784
  */
@@ -841,15 +936,10 @@ interface ReferralEvent {
841
936
  /**
842
937
  * Registrar action ID.
843
938
  *
844
- * A deterministic and globally unique identifier for the "logical registrar action"
845
- * associated with the ReferralEvent.
846
- *
847
- * A Ponder-encoded checkpoint string that uniquely and deterministically identifies
848
- * this event. Encodes all ordering-relevant properties:
849
- * `blockTimestamp → chainId → blockNumber → transactionIndex → eventType → eventIndex`
850
- *
851
- * This field alone is sufficient to establish a total chronological ordering over
852
- * all referral events.
939
+ * @invariant Deterministic and globally unique identifier for the "logical registrar action"
940
+ * associated with this ReferralEvent.
941
+ * @invariant Sorting by this value achieves a chronological ordering of each registrar action
942
+ * by the order they were executed onchain.
853
943
  */
854
944
  id: string;
855
945
  /**
@@ -1003,10 +1093,9 @@ interface BaseReferrerLeaderboardPage {
1003
1093
  */
1004
1094
  pageContext: ReferrerLeaderboardPageContext;
1005
1095
  /**
1006
- * The status of the referral program ("Scheduled", "Active", or "Closed")
1007
- * calculated based on the program's timing relative to {@link accurateAsOf}.
1096
+ * The status of the referral program edition.
1008
1097
  */
1009
- status: ReferralProgramStatusId;
1098
+ status: ReferralProgramEditionStatusId;
1010
1099
  /**
1011
1100
  * The {@link UnixTimestamp} of when the data used to build this page was accurate as of.
1012
1101
  */
@@ -1124,6 +1213,12 @@ interface SerializedReferrerEditionMetricsUnrankedPieSplit extends Omit<Referrer
1124
1213
  * Serialized representation of {@link ReferrerEditionMetricsPieSplit}.
1125
1214
  */
1126
1215
  type SerializedReferrerEditionMetricsPieSplit = SerializedReferrerEditionMetricsRankedPieSplit | SerializedReferrerEditionMetricsUnrankedPieSplit;
1216
+ /**
1217
+ * Serialized representation of {@link ReferralProgramEditionSummaryPieSplit}.
1218
+ */
1219
+ interface SerializedReferralProgramEditionSummaryPieSplit extends Omit<ReferralProgramEditionSummaryPieSplit, "rules"> {
1220
+ rules: SerializedReferralProgramRulesPieSplit;
1221
+ }
1127
1222
 
1128
1223
  /**
1129
1224
  * Referrer edition metrics data for a specific referrer on a rev-share-limit leaderboard.
@@ -1159,10 +1254,10 @@ interface ReferrerEditionMetricsRankedRevShareLimit {
1159
1254
  */
1160
1255
  aggregatedMetrics: AggregatedReferrerMetricsRevShareLimit;
1161
1256
  /**
1162
- * The status of the referral program ("Scheduled", "Active", or "Closed")
1257
+ * The status of the referral program edition
1163
1258
  * calculated based on the program's timing relative to {@link accurateAsOf}.
1164
1259
  */
1165
- status: ReferralProgramStatusId;
1260
+ status: ReferralProgramEditionStatusId;
1166
1261
  /**
1167
1262
  * The {@link UnixTimestamp} of when the data used to build the {@link ReferrerEditionMetricsRankedRevShareLimit} was accurate as of.
1168
1263
  */
@@ -1201,10 +1296,10 @@ interface ReferrerEditionMetricsUnrankedRevShareLimit {
1201
1296
  */
1202
1297
  aggregatedMetrics: AggregatedReferrerMetricsRevShareLimit;
1203
1298
  /**
1204
- * The status of the referral program ("Scheduled", "Active", or "Closed")
1299
+ * The status of the referral program edition
1205
1300
  * calculated based on the program's timing relative to {@link accurateAsOf}.
1206
1301
  */
1207
- status: ReferralProgramStatusId;
1302
+ status: ReferralProgramEditionStatusId;
1208
1303
  /**
1209
1304
  * The {@link UnixTimestamp} of when the data used to build the {@link ReferrerEditionMetricsUnrankedRevShareLimit} was accurate as of.
1210
1305
  */
@@ -1217,6 +1312,38 @@ interface ReferrerEditionMetricsUnrankedRevShareLimit {
1217
1312
  */
1218
1313
  type ReferrerEditionMetricsRevShareLimit = ReferrerEditionMetricsRankedRevShareLimit | ReferrerEditionMetricsUnrankedRevShareLimit;
1219
1314
 
1315
+ /**
1316
+ * Edition summary for a `rev-share-limit` referral program edition.
1317
+ *
1318
+ * Includes `awardPoolRemaining` so consumers can display pool exhaustion state
1319
+ * without needing to fetch the full leaderboard.
1320
+ */
1321
+ interface ReferralProgramEditionSummaryRevShareLimit extends BaseReferralProgramEditionSummary {
1322
+ /**
1323
+ * Discriminant — always `"rev-share-limit"`.
1324
+ *
1325
+ * @invariant Always equals `rules.awardModel` ({@link ReferralProgramAwardModels.RevShareLimit}).
1326
+ */
1327
+ awardModel: typeof ReferralProgramAwardModels.RevShareLimit;
1328
+ /**
1329
+ * The rev-share-limit rules for this edition.
1330
+ */
1331
+ rules: ReferralProgramRulesRevShareLimit;
1332
+ /**
1333
+ * The remaining award pool after sequential race processing.
1334
+ *
1335
+ * When `0n`, the edition's status will be {@link ReferralProgramEditionStatuses.Exhausted}
1336
+ * if the edition is still within its active window.
1337
+ */
1338
+ awardPoolRemaining: PriceUsdc;
1339
+ }
1340
+ declare const validateEditionSummaryRevShareLimit: (summary: ReferralProgramEditionSummaryRevShareLimit) => void;
1341
+ /**
1342
+ * Build a {@link ReferralProgramEditionSummaryRevShareLimit} from a rev-share-limit edition
1343
+ * config and the edition's leaderboard.
1344
+ */
1345
+ declare function buildEditionSummaryRevShareLimit(slug: ReferralProgramEditionSlug, displayName: string, rules: ReferralProgramRulesRevShareLimit, leaderboard: ReferrerLeaderboardRevShareLimit): ReferralProgramEditionSummaryRevShareLimit;
1346
+
1220
1347
  /**
1221
1348
  * A page of referrers from the rev-share-limit referrer leaderboard.
1222
1349
  */
@@ -1308,6 +1435,13 @@ interface SerializedReferrerEditionMetricsUnrankedRevShareLimit extends Omit<Ref
1308
1435
  * Serialized representation of {@link ReferrerEditionMetricsRevShareLimit}.
1309
1436
  */
1310
1437
  type SerializedReferrerEditionMetricsRevShareLimit = SerializedReferrerEditionMetricsRankedRevShareLimit | SerializedReferrerEditionMetricsUnrankedRevShareLimit;
1438
+ /**
1439
+ * Serialized representation of {@link ReferralProgramEditionSummaryRevShareLimit}.
1440
+ */
1441
+ interface SerializedReferralProgramEditionSummaryRevShareLimit extends Omit<ReferralProgramEditionSummaryRevShareLimit, "rules" | "awardPoolRemaining"> {
1442
+ rules: SerializedReferralProgramRulesRevShareLimit;
1443
+ awardPoolRemaining: SerializedPriceUsdc;
1444
+ }
1311
1445
 
1312
1446
  /**
1313
1447
  * Referrer edition metrics data for a specific referrer address.
@@ -1329,6 +1463,21 @@ type ReferrerEditionMetrics = ReferrerEditionMetricsPieSplit | ReferrerEditionMe
1329
1463
  */
1330
1464
  declare const getReferrerEditionMetrics: (referrer: Address, leaderboard: ReferrerLeaderboard) => ReferrerEditionMetrics;
1331
1465
 
1466
+ /**
1467
+ * Runtime summary of a referral program edition, enriched with current status and pool data.
1468
+ *
1469
+ * Use `awardModel` to discriminate between variants at runtime.
1470
+ */
1471
+ type ReferralProgramEditionSummary = ReferralProgramEditionSummaryPieSplit | ReferralProgramEditionSummaryRevShareLimit | ReferralProgramEditionSummaryUnrecognized;
1472
+ /**
1473
+ * Build a runtime edition summary from an edition config and the edition's leaderboard.
1474
+ * Dispatches to the appropriate per-model builder based on `leaderboard.awardModel`.
1475
+ *
1476
+ * @param config - The edition configuration (provides `slug` and `displayName`).
1477
+ * @param leaderboard - The resolved leaderboard for this edition.
1478
+ */
1479
+ declare function buildEditionSummary(config: ReferralProgramEditionConfig, leaderboard: ReferrerLeaderboard): ReferralProgramEditionSummary;
1480
+
1332
1481
  /**
1333
1482
  * A page of referrers from the referrer leaderboard.
1334
1483
  *
@@ -1448,51 +1597,51 @@ type ReferrerMetricsEditionsResponseError = {
1448
1597
  */
1449
1598
  type ReferrerMetricsEditionsResponse = ReferrerMetricsEditionsResponseOk | ReferrerMetricsEditionsResponseError;
1450
1599
  /**
1451
- * A status code for referral program edition config set API responses.
1600
+ * A status code for referral program edition summaries API responses.
1452
1601
  */
1453
- declare const ReferralProgramEditionConfigSetResponseCodes: {
1602
+ declare const ReferralProgramEditionSummariesResponseCodes: {
1454
1603
  /**
1455
- * Represents that the edition config set is available.
1604
+ * Represents that the edition summaries are available.
1456
1605
  */
1457
1606
  readonly Ok: "ok";
1458
1607
  /**
1459
- * Represents that the edition config set is not available.
1608
+ * Represents that the edition summaries are not available.
1460
1609
  */
1461
1610
  readonly Error: "error";
1462
1611
  };
1463
1612
  /**
1464
- * The derived string union of possible {@link ReferralProgramEditionConfigSetResponseCodes}.
1613
+ * The derived string union of possible {@link ReferralProgramEditionSummariesResponseCodes}.
1465
1614
  */
1466
- type ReferralProgramEditionConfigSetResponseCode = (typeof ReferralProgramEditionConfigSetResponseCodes)[keyof typeof ReferralProgramEditionConfigSetResponseCodes];
1615
+ type ReferralProgramEditionSummariesResponseCode = (typeof ReferralProgramEditionSummariesResponseCodes)[keyof typeof ReferralProgramEditionSummariesResponseCodes];
1467
1616
  /**
1468
- * The data payload containing edition configs.
1617
+ * The data payload containing edition summaries.
1469
1618
  * Editions are sorted in descending order by start timestamp.
1470
1619
  */
1471
- type ReferralProgramEditionConfigSetData = {
1472
- editions: ReferralProgramEditionConfig[];
1620
+ type ReferralProgramEditionSummariesData = {
1621
+ editions: ReferralProgramEditionSummary[];
1473
1622
  };
1474
1623
  /**
1475
- * A successful response containing the configured edition config set.
1624
+ * A successful response containing edition summaries.
1476
1625
  */
1477
- type ReferralProgramEditionConfigSetResponseOk = {
1478
- responseCode: typeof ReferralProgramEditionConfigSetResponseCodes.Ok;
1479
- data: ReferralProgramEditionConfigSetData;
1626
+ type ReferralProgramEditionSummariesResponseOk = {
1627
+ responseCode: typeof ReferralProgramEditionSummariesResponseCodes.Ok;
1628
+ data: ReferralProgramEditionSummariesData;
1480
1629
  };
1481
1630
  /**
1482
- * An edition config set response when an error occurs.
1631
+ * An edition summaries response when an error occurs.
1483
1632
  */
1484
- type ReferralProgramEditionConfigSetResponseError = {
1485
- responseCode: typeof ReferralProgramEditionConfigSetResponseCodes.Error;
1633
+ type ReferralProgramEditionSummariesResponseError = {
1634
+ responseCode: typeof ReferralProgramEditionSummariesResponseCodes.Error;
1486
1635
  error: string;
1487
1636
  errorMessage: string;
1488
1637
  };
1489
1638
  /**
1490
- * A referral program edition config set API response.
1639
+ * A referral program edition summaries API response.
1491
1640
  *
1492
1641
  * Use the `responseCode` field to determine the specific type interpretation
1493
1642
  * at runtime.
1494
1643
  */
1495
- type ReferralProgramEditionConfigSetResponse = ReferralProgramEditionConfigSetResponseOk | ReferralProgramEditionConfigSetResponseError;
1644
+ type ReferralProgramEditionSummariesResponse = ReferralProgramEditionSummariesResponseOk | ReferralProgramEditionSummariesResponseError;
1496
1645
 
1497
1646
  /**
1498
1647
  * Serialized representation of {@link ReferralProgramRules}.
@@ -1523,11 +1672,9 @@ interface SerializedReferrerLeaderboardPageResponseOk extends Omit<ReferrerLeade
1523
1672
  */
1524
1673
  type SerializedReferrerLeaderboardPageResponse = SerializedReferrerLeaderboardPageResponseOk | SerializedReferrerLeaderboardPageResponseError;
1525
1674
  /**
1526
- * Serialized representation of {@link ReferralProgramEditionConfig}.
1675
+ * Serialized representation of {@link ReferralProgramEditionSummary}.
1527
1676
  */
1528
- interface SerializedReferralProgramEditionConfig extends Omit<ReferralProgramEditionConfig, "rules"> {
1529
- rules: SerializedReferralProgramRules;
1530
- }
1677
+ type SerializedReferralProgramEditionSummary = SerializedReferralProgramEditionSummaryPieSplit | SerializedReferralProgramEditionSummaryRevShareLimit;
1531
1678
  /**
1532
1679
  * Serialized representation of referrer metrics data for requested editions.
1533
1680
  * Uses Partial because TypeScript cannot know at compile time which specific edition
@@ -1552,27 +1699,27 @@ type SerializedReferrerMetricsEditionsResponseError = ReferrerMetricsEditionsRes
1552
1699
  */
1553
1700
  type SerializedReferrerMetricsEditionsResponse = SerializedReferrerMetricsEditionsResponseOk | SerializedReferrerMetricsEditionsResponseError;
1554
1701
  /**
1555
- * Serialized representation of {@link ReferralProgramEditionConfigSetData}.
1702
+ * Serialized representation of {@link ReferralProgramEditionSummariesData}.
1556
1703
  */
1557
- interface SerializedReferralProgramEditionConfigSetData extends Omit<ReferralProgramEditionConfigSetData, "editions"> {
1558
- editions: SerializedReferralProgramEditionConfig[];
1704
+ interface SerializedReferralProgramEditionSummariesData extends Omit<ReferralProgramEditionSummariesData, "editions"> {
1705
+ editions: SerializedReferralProgramEditionSummary[];
1559
1706
  }
1560
1707
  /**
1561
- * Serialized representation of {@link ReferralProgramEditionConfigSetResponseOk}.
1708
+ * Serialized representation of {@link ReferralProgramEditionSummariesResponseOk}.
1562
1709
  */
1563
- interface SerializedReferralProgramEditionConfigSetResponseOk extends Omit<ReferralProgramEditionConfigSetResponseOk, "data"> {
1564
- data: SerializedReferralProgramEditionConfigSetData;
1710
+ interface SerializedReferralProgramEditionSummariesResponseOk extends Omit<ReferralProgramEditionSummariesResponseOk, "data"> {
1711
+ data: SerializedReferralProgramEditionSummariesData;
1565
1712
  }
1566
1713
  /**
1567
- * Serialized representation of {@link ReferralProgramEditionConfigSetResponseError}.
1714
+ * Serialized representation of {@link ReferralProgramEditionSummariesResponseError}.
1568
1715
  *
1569
1716
  * Note: All fields are already serializable, so this type is identical to the source type.
1570
1717
  */
1571
- type SerializedReferralProgramEditionConfigSetResponseError = ReferralProgramEditionConfigSetResponseError;
1718
+ type SerializedReferralProgramEditionSummariesResponseError = ReferralProgramEditionSummariesResponseError;
1572
1719
  /**
1573
- * Serialized representation of {@link ReferralProgramEditionConfigSetResponse}.
1720
+ * Serialized representation of {@link ReferralProgramEditionSummariesResponse}.
1574
1721
  */
1575
- type SerializedReferralProgramEditionConfigSetResponse = SerializedReferralProgramEditionConfigSetResponseOk | SerializedReferralProgramEditionConfigSetResponseError;
1722
+ type SerializedReferralProgramEditionSummariesResponse = SerializedReferralProgramEditionSummariesResponseOk | SerializedReferralProgramEditionSummariesResponseError;
1576
1723
 
1577
1724
  /**
1578
1725
  * Deserialize a {@link ReferrerLeaderboardPageResponse} object.
@@ -1587,9 +1734,9 @@ declare function deserializeReferrerMetricsEditionsResponse(maybeResponse: Seria
1587
1734
  */
1588
1735
  declare function deserializeReferralProgramEditionConfigSetArray(maybeArray: unknown, valueLabel?: string): ReferralProgramEditionConfig[];
1589
1736
  /**
1590
- * Deserialize a {@link ReferralProgramEditionConfigSetResponse} object.
1737
+ * Deserialize a {@link ReferralProgramEditionSummariesResponse} object.
1591
1738
  */
1592
- declare function deserializeReferralProgramEditionConfigSetResponse(maybeResponse: SerializedReferralProgramEditionConfigSetResponse, valueLabel?: string): ReferralProgramEditionConfigSetResponse;
1739
+ declare function deserializeReferralProgramEditionSummariesResponse(maybeResponse: SerializedReferralProgramEditionSummariesResponse, valueLabel?: string): ReferralProgramEditionSummariesResponse;
1593
1740
 
1594
1741
  /**
1595
1742
  * Serializes a {@link ReferralProgramRules} object.
@@ -1599,9 +1746,12 @@ declare function deserializeReferralProgramEditionConfigSetResponse(maybeRespons
1599
1746
  */
1600
1747
  declare function serializeReferralProgramRules(rules: ReferralProgramRules): SerializedReferralProgramRules;
1601
1748
  /**
1602
- * Serializes a {@link ReferralProgramEditionConfig} object.
1749
+ * Serializes a {@link ReferralProgramEditionSummary} object.
1750
+ *
1751
+ * @throws if called with a {@link ReferralProgramEditionSummaryUnrecognized} — unrecognized
1752
+ * summaries are client-side forward-compatibility placeholders and must never be serialized.
1603
1753
  */
1604
- declare function serializeReferralProgramEditionConfig(editionConfig: ReferralProgramEditionConfig): SerializedReferralProgramEditionConfig;
1754
+ declare function serializeReferralProgramEditionSummary(summary: ReferralProgramEditionSummary): SerializedReferralProgramEditionSummary;
1605
1755
  /**
1606
1756
  * Serialize a {@link ReferrerLeaderboardPageResponse} object.
1607
1757
  */
@@ -1611,9 +1761,9 @@ declare function serializeReferrerLeaderboardPageResponse(response: ReferrerLead
1611
1761
  */
1612
1762
  declare function serializeReferrerMetricsEditionsResponse(response: ReferrerMetricsEditionsResponse): SerializedReferrerMetricsEditionsResponse;
1613
1763
  /**
1614
- * Serialize a {@link ReferralProgramEditionConfigSetResponse} object.
1764
+ * Serialize a {@link ReferralProgramEditionSummariesResponse} object.
1615
1765
  */
1616
- declare function serializeReferralProgramEditionConfigSetResponse(response: ReferralProgramEditionConfigSetResponse): SerializedReferralProgramEditionConfigSetResponse;
1766
+ declare function serializeReferralProgramEditionSummariesResponse(response: ReferralProgramEditionSummariesResponse): SerializedReferralProgramEditionSummariesResponse;
1617
1767
 
1618
1768
  /**
1619
1769
  * Calculate the score of a referrer based on the total incremental duration
@@ -1627,6 +1777,29 @@ declare function serializeReferralProgramEditionConfigSetResponse(response: Refe
1627
1777
  */
1628
1778
  declare const calcReferrerScorePieSplit: (totalIncrementalDuration: Duration) => ReferrerScore;
1629
1779
 
1780
+ /**
1781
+ * Calculate the status of a `pie-split` referral program.
1782
+ *
1783
+ * Delegates entirely to {@link calcBaseReferralProgramEditionStatus} — pie-split has no additional
1784
+ * runtime conditions that affect status beyond the time-based lifecycle.
1785
+ *
1786
+ * @param rules - The pie-split rules for the edition.
1787
+ * @param now - Current date in {@link UnixTimestamp} format.
1788
+ */
1789
+ declare const calcReferralProgramEditionStatusPieSplit: (rules: ReferralProgramRulesPieSplit, now: UnixTimestamp) => ReferralProgramEditionStatusId;
1790
+
1791
+ /**
1792
+ * Calculate the status of a `rev-share-limit` referral program.
1793
+ *
1794
+ * Returns `Exhausted` when the program is `Active` but its award pool has been fully consumed
1795
+ * (`awardPoolRemaining.amount === 0n`). Otherwise delegates to {@link calcBaseReferralProgramEditionStatus}.
1796
+ *
1797
+ * @param rules - The rev-share-limit rules for the edition.
1798
+ * @param now - Current date in {@link UnixTimestamp} format.
1799
+ * @param aggregatedMetrics - The aggregated leaderboard metrics, used to check `awardPoolRemaining`.
1800
+ */
1801
+ declare const calcReferralProgramEditionStatusRevShareLimit: (rules: ReferralProgramRulesRevShareLimit, now: UnixTimestamp, aggregatedMetrics: AggregatedReferrerMetricsRevShareLimit) => ReferralProgramEditionStatusId;
1802
+
1630
1803
  /**
1631
1804
  * Default ENSNode API endpoint URL
1632
1805
  */
@@ -1850,22 +2023,22 @@ declare class ENSReferralsClient {
1850
2023
  */
1851
2024
  getReferrerMetricsEditions(request: ReferrerMetricsEditionsRequest): Promise<ReferrerMetricsEditionsResponse>;
1852
2025
  /**
1853
- * Get the currently configured referral program edition config set.
2026
+ * Get the currently configured referral program edition summaries.
1854
2027
  * Editions are sorted in descending order by start timestamp (most recent first).
1855
2028
  *
1856
- * @returns A response containing the edition config set, or an error response if unavailable.
2029
+ * @returns A response containing edition summaries, or an error response if unavailable.
1857
2030
  *
1858
2031
  * @remarks Editions whose `rules.awardModel` is not recognized by this client version are
1859
- * preserved as {@link ReferralProgramRulesUnrecognized}. The returned map includes all
1860
- * editions — recognized and unrecognized alike. Callers should check `editionConfig.rules.awardModel`
2032
+ * preserved as {@link ReferralProgramEditionSummaryUnrecognized}. The returned response includes all
2033
+ * editions — recognized and unrecognized alike. Callers should check `edition.awardModel`
1861
2034
  * and skip editions with `"unrecognized"` as appropriate. At least one edition of any kind must
1862
2035
  * be present, otherwise deserialization throws.
1863
2036
  *
1864
2037
  * @example
1865
2038
  * ```typescript
1866
- * const response = await client.getEditionConfigSet();
2039
+ * const response = await client.getEditionSummaries();
1867
2040
  *
1868
- * if (response.responseCode === ReferralProgramEditionConfigSetResponseCodes.Ok) {
2041
+ * if (response.responseCode === ReferralProgramEditionSummariesResponseCodes.Ok) {
1869
2042
  * console.log(`Found ${response.data.editions.length} editions`);
1870
2043
  * for (const edition of response.data.editions) {
1871
2044
  * console.log(`${edition.slug}: ${edition.displayName}`);
@@ -1876,15 +2049,15 @@ declare class ENSReferralsClient {
1876
2049
  * @example
1877
2050
  * ```typescript
1878
2051
  * // Handle error response
1879
- * const response = await client.getEditionConfigSet();
2052
+ * const response = await client.getEditionSummaries();
1880
2053
  *
1881
- * if (response.responseCode === ReferralProgramEditionConfigSetResponseCodes.Error) {
2054
+ * if (response.responseCode === ReferralProgramEditionSummariesResponseCodes.Error) {
1882
2055
  * console.error(response.error);
1883
2056
  * console.error(response.errorMessage);
1884
2057
  * }
1885
2058
  * ```
1886
2059
  */
1887
- getEditionConfigSet(): Promise<ReferralProgramEditionConfigSetResponse>;
2060
+ getEditionSummaries(): Promise<ReferralProgramEditionSummariesResponse>;
1888
2061
  }
1889
2062
 
1890
2063
  /**
@@ -1922,4 +2095,4 @@ declare const SECONDS_PER_YEAR: Duration;
1922
2095
  declare function isValidDuration(duration: Duration): boolean;
1923
2096
  declare function validateDuration(duration: Duration): void;
1924
2097
 
1925
- export { type AggregatedReferrerMetricsPieSplit, type AggregatedReferrerMetricsRevShareLimit, type AwardedReferrerMetricsPieSplit, type AwardedReferrerMetricsRevShareLimit, BASE_REVENUE_CONTRIBUTION_PER_YEAR, type BaseReferralProgramRules, type BaseReferrerLeaderboardPage, type ClientOptions, DEFAULT_ENSNODE_API_URL, ENSReferralsClient, MAX_EDITIONS_PER_REQUEST, REFERRERS_PER_LEADERBOARD_PAGE_DEFAULT, REFERRERS_PER_LEADERBOARD_PAGE_MAX, type RankedReferrerMetricsPieSplit, type RankedReferrerMetricsRevShareLimit, type ReferralEvent, type ReferralProgramAwardModel, ReferralProgramAwardModels, type ReferralProgramEditionConfig, type ReferralProgramEditionConfigSet, type ReferralProgramEditionConfigSetData, type ReferralProgramEditionConfigSetResponse, type ReferralProgramEditionConfigSetResponseCode, ReferralProgramEditionConfigSetResponseCodes, type ReferralProgramEditionConfigSetResponseError, type ReferralProgramEditionConfigSetResponseOk, type ReferralProgramEditionDisqualification, type ReferralProgramEditionSlug, type ReferralProgramRules, type ReferralProgramRulesPieSplit, type ReferralProgramRulesRevShareLimit, type ReferralProgramRulesUnrecognized, type ReferralProgramStatusId, ReferralProgramStatuses, type ReferrerEditionMetrics, type ReferrerEditionMetricsPieSplit, type ReferrerEditionMetricsRankedPieSplit, type ReferrerEditionMetricsRankedRevShareLimit, type ReferrerEditionMetricsRevShareLimit, type ReferrerEditionMetricsTypeId, ReferrerEditionMetricsTypeIds, type ReferrerEditionMetricsUnrankedPieSplit, type ReferrerEditionMetricsUnrankedRevShareLimit, type ReferrerEditionMetricsUnrecognized, type ReferrerLeaderboard, type ReferrerLeaderboardPage, type ReferrerLeaderboardPageContext, type ReferrerLeaderboardPageParams, type ReferrerLeaderboardPagePieSplit, type ReferrerLeaderboardPageRequest, type ReferrerLeaderboardPageResponse, type ReferrerLeaderboardPageResponseCode, ReferrerLeaderboardPageResponseCodes, type ReferrerLeaderboardPageResponseError, type ReferrerLeaderboardPageResponseOk, type ReferrerLeaderboardPageRevShareLimit, type ReferrerLeaderboardPageUnrecognized, type ReferrerLeaderboardPieSplit, type ReferrerLeaderboardRevShareLimit, type ReferrerMetrics, type ReferrerMetricsEditionsData, type ReferrerMetricsEditionsRequest, type ReferrerMetricsEditionsResponse, type ReferrerMetricsEditionsResponseCode, ReferrerMetricsEditionsResponseCodes, type ReferrerMetricsEditionsResponseError, type ReferrerMetricsEditionsResponseOk, type ReferrerMetricsForComparison, type ReferrerMetricsRevShareLimit, type ReferrerRank, type ReferrerScore, SECONDS_PER_YEAR, type ScoredReferrerMetricsPieSplit, type SerializedAggregatedReferrerMetricsPieSplit, type SerializedAggregatedReferrerMetricsRevShareLimit, type SerializedAwardedReferrerMetricsPieSplit, type SerializedAwardedReferrerMetricsRevShareLimit, type SerializedReferralProgramEditionConfig, type SerializedReferralProgramEditionConfigSetData, type SerializedReferralProgramEditionConfigSetResponse, type SerializedReferralProgramEditionConfigSetResponseError, type SerializedReferralProgramEditionConfigSetResponseOk, type SerializedReferralProgramRules, type SerializedReferralProgramRulesPieSplit, type SerializedReferralProgramRulesRevShareLimit, type SerializedReferrerEditionMetrics, type SerializedReferrerEditionMetricsPieSplit, type SerializedReferrerEditionMetricsRankedPieSplit, type SerializedReferrerEditionMetricsRankedRevShareLimit, type SerializedReferrerEditionMetricsRevShareLimit, type SerializedReferrerEditionMetricsUnrankedPieSplit, type SerializedReferrerEditionMetricsUnrankedRevShareLimit, type SerializedReferrerLeaderboardPage, type SerializedReferrerLeaderboardPagePieSplit, type SerializedReferrerLeaderboardPageResponse, type SerializedReferrerLeaderboardPageResponseError, type SerializedReferrerLeaderboardPageResponseOk, type SerializedReferrerLeaderboardPageRevShareLimit, type SerializedReferrerMetricsEditionsData, type SerializedReferrerMetricsEditionsResponse, type SerializedReferrerMetricsEditionsResponseError, type SerializedReferrerMetricsEditionsResponseOk, type SerializedUnrankedReferrerMetricsPieSplit, type SerializedUnrankedReferrerMetricsRevShareLimit, type UnrankedReferrerMetricsPieSplit, type UnrankedReferrerMetricsRevShareLimit, buildAggregatedReferrerMetricsPieSplit, buildAggregatedReferrerMetricsRevShareLimit, buildAwardedReferrerMetricsPieSplit, buildAwardedReferrerMetricsRevShareLimit, buildEnsReferralUrl, buildLeaderboardPagePieSplit, buildLeaderboardPageRevShareLimit, buildRankedReferrerMetricsPieSplit, buildRankedReferrerMetricsRevShareLimit, buildReferralProgramEditionConfigSet, buildReferralProgramRulesPieSplit, buildReferralProgramRulesRevShareLimit, buildReferrerLeaderboardPageContext, buildReferrerLeaderboardPageParams, buildReferrerLeaderboardPieSplit, buildReferrerLeaderboardRevShareLimit, buildReferrerMetrics, buildReferrerMetricsRevShareLimit, buildScoredReferrerMetricsPieSplit, buildUnrankedReferrerMetricsPieSplit, buildUnrankedReferrerMetricsRevShareLimit, calcReferralProgramStatus, calcReferrerAwardPoolSharePieSplit, calcReferrerScorePieSplit, compareReferrerMetrics, deserializeReferralProgramEditionConfigSetArray, deserializeReferralProgramEditionConfigSetResponse, deserializeReferrerLeaderboardPageResponse, deserializeReferrerMetricsEditionsResponse, getDefaultReferralProgramEditionConfigSet, getReferrerEditionMetrics, getReferrerLeaderboardPage, isFiniteNonNegativeNumber, isInteger, isNonNegativeInteger, isPositiveInteger, isReferrerQualifiedRevShareLimit, isValidDuration, isValidReferrerScore, normalizeAddress, serializeReferralProgramEditionConfig, serializeReferralProgramEditionConfigSetResponse, serializeReferralProgramRules, serializeReferrerLeaderboardPageResponse, serializeReferrerMetricsEditionsResponse, sliceReferrers, sortReferrerMetrics, validateAggregatedReferrerMetricsPieSplit, validateAggregatedReferrerMetricsRevShareLimit, validateAwardedReferrerMetricsPieSplit, validateAwardedReferrerMetricsRevShareLimit, validateBaseReferralProgramRules, validateDuration, validateLowercaseAddress, validateNonNegativeInteger, validateRankedReferrerMetricsPieSplit, validateRankedReferrerMetricsRevShareLimit, validateReferralProgramEditionConfigSet, validateReferralProgramRulesPieSplit, validateReferralProgramRulesRevShareLimit, validateReferrerLeaderboardPageContext, validateReferrerMetrics, validateReferrerMetricsRevShareLimit, validateReferrerRank, validateReferrerScore, validateScoredReferrerMetricsPieSplit, validateUnixTimestamp, validateUnrankedReferrerMetricsPieSplit, validateUnrankedReferrerMetricsRevShareLimit };
2098
+ export { type AggregatedReferrerMetricsPieSplit, type AggregatedReferrerMetricsRevShareLimit, type AwardedReferrerMetricsPieSplit, type AwardedReferrerMetricsRevShareLimit, BASE_REVENUE_CONTRIBUTION_PER_YEAR, type BaseReferralProgramEditionSummary, type BaseReferralProgramRules, type BaseReferrerLeaderboardPage, type ClientOptions, DEFAULT_ENSNODE_API_URL, ENSReferralsClient, MAX_EDITIONS_PER_REQUEST, REFERRAL_PROGRAM_EDITION_SLUG_PATTERN, REFERRERS_PER_LEADERBOARD_PAGE_DEFAULT, REFERRERS_PER_LEADERBOARD_PAGE_MAX, type RankedReferrerMetricsPieSplit, type RankedReferrerMetricsRevShareLimit, type ReferralEvent, type ReferralProgramAwardModel, ReferralProgramAwardModels, type ReferralProgramEditionConfig, type ReferralProgramEditionConfigSet, type ReferralProgramEditionDisqualification, type ReferralProgramEditionSlug, type ReferralProgramEditionStatusId, ReferralProgramEditionStatuses, type ReferralProgramEditionSummariesData, type ReferralProgramEditionSummariesResponse, type ReferralProgramEditionSummariesResponseCode, ReferralProgramEditionSummariesResponseCodes, type ReferralProgramEditionSummariesResponseError, type ReferralProgramEditionSummariesResponseOk, type ReferralProgramEditionSummary, type ReferralProgramEditionSummaryPieSplit, type ReferralProgramEditionSummaryRevShareLimit, type ReferralProgramEditionSummaryUnrecognized, type ReferralProgramRules, type ReferralProgramRulesPieSplit, type ReferralProgramRulesRevShareLimit, type ReferralProgramRulesUnrecognized, type ReferrerEditionMetrics, type ReferrerEditionMetricsPieSplit, type ReferrerEditionMetricsRankedPieSplit, type ReferrerEditionMetricsRankedRevShareLimit, type ReferrerEditionMetricsRevShareLimit, type ReferrerEditionMetricsTypeId, ReferrerEditionMetricsTypeIds, type ReferrerEditionMetricsUnrankedPieSplit, type ReferrerEditionMetricsUnrankedRevShareLimit, type ReferrerEditionMetricsUnrecognized, type ReferrerLeaderboard, type ReferrerLeaderboardPage, type ReferrerLeaderboardPageContext, type ReferrerLeaderboardPageParams, type ReferrerLeaderboardPagePieSplit, type ReferrerLeaderboardPageRequest, type ReferrerLeaderboardPageResponse, type ReferrerLeaderboardPageResponseCode, ReferrerLeaderboardPageResponseCodes, type ReferrerLeaderboardPageResponseError, type ReferrerLeaderboardPageResponseOk, type ReferrerLeaderboardPageRevShareLimit, type ReferrerLeaderboardPageUnrecognized, type ReferrerLeaderboardPieSplit, type ReferrerLeaderboardRevShareLimit, type ReferrerMetrics, type ReferrerMetricsEditionsData, type ReferrerMetricsEditionsRequest, type ReferrerMetricsEditionsResponse, type ReferrerMetricsEditionsResponseCode, ReferrerMetricsEditionsResponseCodes, type ReferrerMetricsEditionsResponseError, type ReferrerMetricsEditionsResponseOk, type ReferrerMetricsForComparison, type ReferrerMetricsRevShareLimit, type ReferrerRank, type ReferrerScore, SECONDS_PER_YEAR, type ScoredReferrerMetricsPieSplit, type SerializedAggregatedReferrerMetricsPieSplit, type SerializedAggregatedReferrerMetricsRevShareLimit, type SerializedAwardedReferrerMetricsPieSplit, type SerializedAwardedReferrerMetricsRevShareLimit, type SerializedReferralProgramEditionSummariesData, type SerializedReferralProgramEditionSummariesResponse, type SerializedReferralProgramEditionSummariesResponseError, type SerializedReferralProgramEditionSummariesResponseOk, type SerializedReferralProgramEditionSummary, type SerializedReferralProgramEditionSummaryPieSplit, type SerializedReferralProgramEditionSummaryRevShareLimit, type SerializedReferralProgramRules, type SerializedReferralProgramRulesPieSplit, type SerializedReferralProgramRulesRevShareLimit, type SerializedReferrerEditionMetrics, type SerializedReferrerEditionMetricsPieSplit, type SerializedReferrerEditionMetricsRankedPieSplit, type SerializedReferrerEditionMetricsRankedRevShareLimit, type SerializedReferrerEditionMetricsRevShareLimit, type SerializedReferrerEditionMetricsUnrankedPieSplit, type SerializedReferrerEditionMetricsUnrankedRevShareLimit, type SerializedReferrerLeaderboardPage, type SerializedReferrerLeaderboardPagePieSplit, type SerializedReferrerLeaderboardPageResponse, type SerializedReferrerLeaderboardPageResponseError, type SerializedReferrerLeaderboardPageResponseOk, type SerializedReferrerLeaderboardPageRevShareLimit, type SerializedReferrerMetricsEditionsData, type SerializedReferrerMetricsEditionsResponse, type SerializedReferrerMetricsEditionsResponseError, type SerializedReferrerMetricsEditionsResponseOk, type SerializedUnrankedReferrerMetricsPieSplit, type SerializedUnrankedReferrerMetricsRevShareLimit, type UnrankedReferrerMetricsPieSplit, type UnrankedReferrerMetricsRevShareLimit, buildAggregatedReferrerMetricsPieSplit, buildAggregatedReferrerMetricsRevShareLimit, buildAwardedReferrerMetricsPieSplit, buildAwardedReferrerMetricsRevShareLimit, buildEditionSummary, buildEditionSummaryPieSplit, buildEditionSummaryRevShareLimit, buildEnsReferralUrl, buildLeaderboardPagePieSplit, buildLeaderboardPageRevShareLimit, buildRankedReferrerMetricsPieSplit, buildRankedReferrerMetricsRevShareLimit, buildReferralProgramEditionConfigSet, buildReferralProgramRulesPieSplit, buildReferralProgramRulesRevShareLimit, buildReferrerLeaderboardPageContext, buildReferrerLeaderboardPageParams, buildReferrerLeaderboardPieSplit, buildReferrerLeaderboardRevShareLimit, buildReferrerMetrics, buildReferrerMetricsRevShareLimit, buildScoredReferrerMetricsPieSplit, buildUnrankedReferrerMetricsPieSplit, buildUnrankedReferrerMetricsRevShareLimit, calcBaseReferralProgramEditionStatus, calcReferralProgramEditionStatusPieSplit, calcReferralProgramEditionStatusRevShareLimit, calcReferrerAwardPoolSharePieSplit, calcReferrerScorePieSplit, compareReferrerMetrics, deserializeReferralProgramEditionConfigSetArray, deserializeReferralProgramEditionSummariesResponse, deserializeReferrerLeaderboardPageResponse, deserializeReferrerMetricsEditionsResponse, getDefaultReferralProgramEditionConfigSet, getReferrerEditionMetrics, getReferrerLeaderboardPage, isFiniteNonNegativeNumber, isInteger, isNonNegativeInteger, isPositiveInteger, isReferrerQualifiedRevShareLimit, isValidDuration, isValidReferrerScore, normalizeAddress, serializeReferralProgramEditionSummariesResponse, serializeReferralProgramEditionSummary, serializeReferralProgramRules, serializeReferrerLeaderboardPageResponse, serializeReferrerMetricsEditionsResponse, sliceReferrers, sortReferrerMetrics, validateAggregatedReferrerMetricsPieSplit, validateAggregatedReferrerMetricsRevShareLimit, validateAwardedReferrerMetricsPieSplit, validateAwardedReferrerMetricsRevShareLimit, validateBaseReferralProgramEditionSummary, validateBaseReferralProgramRules, validateDuration, validateEditionSummaryPieSplit, validateEditionSummaryRevShareLimit, validateLowercaseAddress, validateNonNegativeInteger, validateRankedReferrerMetricsPieSplit, validateRankedReferrerMetricsRevShareLimit, validateReferralProgramEditionConfigSet, validateReferralProgramRulesPieSplit, validateReferralProgramRulesRevShareLimit, validateReferrerLeaderboardPageContext, validateReferrerMetrics, validateReferrerMetricsRevShareLimit, validateReferrerRank, validateReferrerScore, validateScoredReferrerMetricsPieSplit, validateUnixTimestamp, validateUnrankedReferrerMetricsPieSplit, validateUnrankedReferrerMetricsRevShareLimit };