@domino-sdk/relay 0.28.0 → 0.29.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.
package/dist/browser.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { a5 as CosmosChain, a6 as CosmosNetwork, N as WalletSigner, a2 as WalletSignInNetwork, R as AuthProvider, H as referralAcceptSchema, J as LeaderboardQuery, K as WalletAddressInput, M as walletSignatureSchema, L as LinkedWallet, P as walletChallengeInputSchema, Q as walletProofSchema, V as WalletSignature, Y as engagementPageQuerySchema, Z as contentQualificationQuerySchema, _ as contentAdmissionQuerySchema, $ as contentEnrollmentInputSchema, a0 as contentReleaseInputSchema } from './submission-input-D3t8WKOk.js';
1
+ import { a5 as CosmosChain, a6 as CosmosNetwork, N as WalletSigner, a2 as WalletSignInNetwork, R as AuthProvider, H as referralAcceptSchema, J as LeaderboardQuery, K as WalletAddressInput, M as walletSignatureSchema, L as LinkedWallet, P as walletChallengeInputSchema, Q as walletProofSchema, V as WalletSignature, Y as engagementPageQuerySchema, Z as contentQualificationQuerySchema, _ as contentAdmissionQuerySchema, $ as contentEnrollmentInputSchema, a0 as contentReleaseInputSchema } from './submission-input-C0cOmO4Q.js';
2
2
  import { SubmitInput, ReleaseInput, beginHandoverSchema, contentPerformanceQuerySchema } from './schema.js';
3
- import { createRelayClient, SubmissionStore, ProfileUpdate, QuestView, QuestController, ProgressObservation, questExperienceSchema, ProgressObserver, ExchangeInput, PhotoSubmission, QuizSubmission, ClaimSubmission, ValueSubmission } from './index.js';
3
+ import { createRelayClient, SubmissionStore, ProfileUpdate, ProfileCompletionQuery, QuestView, QuestController, ProgressObservation, questExperienceSchema, ProgressObserver, ExchangeInput, PhotoSubmission, QuizSubmission, ClaimSubmission, ValueSubmission } from './index.js';
4
4
  import * as zod from 'zod';
5
5
 
6
6
  /** An EIP-1193 provider, such as `window.ethereum` or an EIP-6963 announcement's provider. */
@@ -409,7 +409,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
409
409
  accounts: {
410
410
  id: string;
411
411
  program: string;
412
- kind: "milestone" | "fixed" | "bonus";
412
+ kind: "fixed" | "milestone" | "bonus";
413
413
  balance: string;
414
414
  earned: number;
415
415
  settled: number;
@@ -575,6 +575,15 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
575
575
  }[];
576
576
  nextCursor: string | null;
577
577
  }>;
578
+ placement: (board: string, profile: string) => Promise<{
579
+ leaderboard: string;
580
+ title: string;
581
+ profile: string;
582
+ rank: number | null;
583
+ score: number | null;
584
+ total: number;
585
+ key?: string | undefined;
586
+ }>;
578
587
  };
579
588
  profiles: {
580
589
  mine: () => Promise<{
@@ -594,7 +603,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
594
603
  seed: string;
595
604
  };
596
605
  displayName: string | null;
597
- avatarChoice: "default" | "account" | "generated" | "upload";
606
+ avatarChoice: "default" | "account" | "upload" | "generated";
598
607
  avatarProvider: "x" | "discord" | "google" | null;
599
608
  hidden: boolean;
600
609
  locked: boolean;
@@ -624,7 +633,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
624
633
  seed: string;
625
634
  };
626
635
  displayName: string | null;
627
- avatarChoice: "default" | "account" | "generated" | "upload";
636
+ avatarChoice: "default" | "account" | "upload" | "generated";
628
637
  avatarProvider: "x" | "discord" | "google" | null;
629
638
  hidden: boolean;
630
639
  locked: boolean;
@@ -655,7 +664,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
655
664
  seed: string;
656
665
  };
657
666
  displayName: string | null;
658
- avatarChoice: "default" | "account" | "generated" | "upload";
667
+ avatarChoice: "default" | "account" | "upload" | "generated";
659
668
  avatarProvider: "x" | "discord" | "google" | null;
660
669
  hidden: boolean;
661
670
  locked: boolean;
@@ -682,36 +691,28 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
682
691
  source: "generated";
683
692
  seed: string;
684
693
  };
685
- self: boolean;
686
- leaderboards: {
687
- leaderboard: string;
688
- title: string;
689
- rank: number;
690
- score: number;
691
- total: number;
692
- key?: string | undefined;
693
- }[] | null;
694
- quests: {
694
+ }>;
695
+ completions: (profile: string, options?: ProfileCompletionQuery) => Promise<{
696
+ items: {
695
697
  quest: string;
696
698
  title: string;
697
699
  completions: number;
698
700
  lastCompletedAt: number | null;
699
701
  key?: string | undefined;
700
- }[] | null;
701
- referrals: {
702
- attributed: number;
703
- programs: {
704
- program: string;
705
- title: string;
706
- qualified: number;
707
- milestones: {
708
- id: string;
709
- count: number;
710
- reached: boolean;
711
- }[];
712
- key?: string | undefined;
713
- }[];
714
- } | null;
702
+ }[];
703
+ nextCursor: string | null;
704
+ }>;
705
+ referral: (profile: string, program: string) => Promise<{
706
+ program: string;
707
+ title: string;
708
+ invited: number;
709
+ qualified: number;
710
+ milestones: {
711
+ id: string;
712
+ count: number;
713
+ reached: boolean;
714
+ }[];
715
+ key?: string | undefined;
715
716
  }>;
716
717
  };
717
718
  quests: {
@@ -751,7 +752,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
751
752
  start: number;
752
753
  end?: number | undefined;
753
754
  };
754
- enrollment: "required" | "none";
755
+ enrollment: "none" | "required";
755
756
  posts: "after-enrollment" | "since-start";
756
757
  historical: "staff" | "automatic" | "claim";
757
758
  } | undefined;
@@ -779,12 +780,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
779
780
  actor?: "member" | "staff" | undefined;
780
781
  } | {
781
782
  kind: "manual";
782
- input: "quiz" | "photo" | "none";
783
+ input: "none" | "quiz" | "photo";
783
784
  actor?: "member" | "staff" | undefined;
784
785
  };
785
786
  availability: {
786
787
  kind: "available";
787
- input: "quiz" | "url" | "text" | "photo" | "none";
788
+ input: "text" | "url" | "none" | "quiz" | "photo";
788
789
  } | {
789
790
  kind: "completed";
790
791
  } | {
@@ -822,7 +823,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
822
823
  kind: "keyed";
823
824
  };
824
825
  completionCount: number;
825
- visibility: "hidden" | "visible";
826
+ visibility: "visible" | "hidden";
826
827
  missing: {
827
828
  quest: string;
828
829
  title: string;
@@ -833,7 +834,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
833
834
  quest: string;
834
835
  member: string;
835
836
  evidence: string | null;
836
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
837
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
837
838
  reason: string | null;
838
839
  retries: number;
839
840
  generation: number;
@@ -867,22 +868,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
867
868
  })[] | null;
868
869
  createdAt: number;
869
870
  input?: {
870
- kind: "quiz";
871
- answers: {
872
- [k: string]: string;
873
- };
874
- release?: string | undefined;
875
- } | {
876
871
  kind: "text";
877
872
  value: string;
878
873
  } | {
879
874
  kind: "url";
880
875
  value: string;
876
+ } | {
877
+ kind: "quiz";
878
+ answers: {
879
+ [k: string]: string;
880
+ };
881
+ release?: string | undefined;
881
882
  } | undefined;
882
883
  } | null;
883
884
  release: string;
884
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
885
- lifecycle: "active" | "paused" | "archived";
885
+ interaction: "staff" | "text" | "url" | "automatic" | "claim" | "quiz" | "photo";
886
+ lifecycle: "paused" | "active" | "archived";
886
887
  rewards: ({
887
888
  kind: "points";
888
889
  label: string;
@@ -943,7 +944,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
943
944
  quest: string;
944
945
  member: string;
945
946
  evidence: string | null;
946
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
947
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
947
948
  reason: string | null;
948
949
  retries: number;
949
950
  generation: number;
@@ -977,17 +978,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
977
978
  })[] | null;
978
979
  createdAt: number;
979
980
  input?: {
980
- kind: "quiz";
981
- answers: {
982
- [k: string]: string;
983
- };
984
- release?: string | undefined;
985
- } | {
986
981
  kind: "text";
987
982
  value: string;
988
983
  } | {
989
984
  kind: "url";
990
985
  value: string;
986
+ } | {
987
+ kind: "quiz";
988
+ answers: {
989
+ [k: string]: string;
990
+ };
991
+ release?: string | undefined;
991
992
  } | undefined;
992
993
  }>;
993
994
  experience: () => Promise<{
@@ -1028,7 +1029,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1028
1029
  start: number;
1029
1030
  end?: number | undefined;
1030
1031
  };
1031
- enrollment: "required" | "none";
1032
+ enrollment: "none" | "required";
1032
1033
  posts: "after-enrollment" | "since-start";
1033
1034
  historical: "staff" | "automatic" | "claim";
1034
1035
  } | undefined;
@@ -1056,12 +1057,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1056
1057
  actor?: "member" | "staff" | undefined;
1057
1058
  } | {
1058
1059
  kind: "manual";
1059
- input: "quiz" | "photo" | "none";
1060
+ input: "none" | "quiz" | "photo";
1060
1061
  actor?: "member" | "staff" | undefined;
1061
1062
  };
1062
1063
  availability: {
1063
1064
  kind: "available";
1064
- input: "quiz" | "url" | "text" | "photo" | "none";
1065
+ input: "text" | "url" | "none" | "quiz" | "photo";
1065
1066
  } | {
1066
1067
  kind: "completed";
1067
1068
  } | {
@@ -1099,7 +1100,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1099
1100
  kind: "keyed";
1100
1101
  };
1101
1102
  completionCount: number;
1102
- visibility: "hidden" | "visible";
1103
+ visibility: "visible" | "hidden";
1103
1104
  missing: {
1104
1105
  quest: string;
1105
1106
  title: string;
@@ -1110,7 +1111,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1110
1111
  quest: string;
1111
1112
  member: string;
1112
1113
  evidence: string | null;
1113
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1114
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
1114
1115
  reason: string | null;
1115
1116
  retries: number;
1116
1117
  generation: number;
@@ -1144,22 +1145,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1144
1145
  })[] | null;
1145
1146
  createdAt: number;
1146
1147
  input?: {
1147
- kind: "quiz";
1148
- answers: {
1149
- [k: string]: string;
1150
- };
1151
- release?: string | undefined;
1152
- } | {
1153
1148
  kind: "text";
1154
1149
  value: string;
1155
1150
  } | {
1156
1151
  kind: "url";
1157
1152
  value: string;
1153
+ } | {
1154
+ kind: "quiz";
1155
+ answers: {
1156
+ [k: string]: string;
1157
+ };
1158
+ release?: string | undefined;
1158
1159
  } | undefined;
1159
1160
  } | null;
1160
1161
  release: string;
1161
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
1162
- lifecycle: "active" | "paused" | "archived";
1162
+ interaction: "staff" | "text" | "url" | "automatic" | "claim" | "quiz" | "photo";
1163
+ lifecycle: "paused" | "active" | "archived";
1163
1164
  rewards: ({
1164
1165
  kind: "points";
1165
1166
  label: string;
@@ -1253,7 +1254,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1253
1254
  start: number;
1254
1255
  end?: number | undefined;
1255
1256
  };
1256
- enrollment: "required" | "none";
1257
+ enrollment: "none" | "required";
1257
1258
  posts: "after-enrollment" | "since-start";
1258
1259
  historical: "staff" | "automatic" | "claim";
1259
1260
  } | undefined;
@@ -1281,12 +1282,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1281
1282
  actor?: "member" | "staff" | undefined;
1282
1283
  } | {
1283
1284
  kind: "manual";
1284
- input: "quiz" | "photo" | "none";
1285
+ input: "none" | "quiz" | "photo";
1285
1286
  actor?: "member" | "staff" | undefined;
1286
1287
  };
1287
1288
  availability: {
1288
1289
  kind: "available";
1289
- input: "quiz" | "url" | "text" | "photo" | "none";
1290
+ input: "text" | "url" | "none" | "quiz" | "photo";
1290
1291
  } | {
1291
1292
  kind: "completed";
1292
1293
  } | {
@@ -1324,7 +1325,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1324
1325
  kind: "keyed";
1325
1326
  };
1326
1327
  completionCount: number;
1327
- visibility: "hidden" | "visible";
1328
+ visibility: "visible" | "hidden";
1328
1329
  missing: {
1329
1330
  quest: string;
1330
1331
  title: string;
@@ -1335,7 +1336,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1335
1336
  quest: string;
1336
1337
  member: string;
1337
1338
  evidence: string | null;
1338
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1339
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
1339
1340
  reason: string | null;
1340
1341
  retries: number;
1341
1342
  generation: number;
@@ -1369,22 +1370,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1369
1370
  })[] | null;
1370
1371
  createdAt: number;
1371
1372
  input?: {
1372
- kind: "quiz";
1373
- answers: {
1374
- [k: string]: string;
1375
- };
1376
- release?: string | undefined;
1377
- } | {
1378
1373
  kind: "text";
1379
1374
  value: string;
1380
1375
  } | {
1381
1376
  kind: "url";
1382
1377
  value: string;
1378
+ } | {
1379
+ kind: "quiz";
1380
+ answers: {
1381
+ [k: string]: string;
1382
+ };
1383
+ release?: string | undefined;
1383
1384
  } | undefined;
1384
1385
  } | null;
1385
1386
  release: string;
1386
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
1387
- lifecycle: "active" | "paused" | "archived";
1387
+ interaction: "staff" | "text" | "url" | "automatic" | "claim" | "quiz" | "photo";
1388
+ lifecycle: "paused" | "active" | "archived";
1388
1389
  rewards: ({
1389
1390
  kind: "points";
1390
1391
  label: string;
@@ -1481,7 +1482,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1481
1482
  start: number;
1482
1483
  end?: number | undefined;
1483
1484
  };
1484
- enrollment: "required" | "none";
1485
+ enrollment: "none" | "required";
1485
1486
  posts: "after-enrollment" | "since-start";
1486
1487
  historical: "staff" | "automatic" | "claim";
1487
1488
  } | undefined;
@@ -1509,12 +1510,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1509
1510
  actor?: "member" | "staff" | undefined;
1510
1511
  } | {
1511
1512
  kind: "manual";
1512
- input: "quiz" | "photo" | "none";
1513
+ input: "none" | "quiz" | "photo";
1513
1514
  actor?: "member" | "staff" | undefined;
1514
1515
  };
1515
1516
  availability: {
1516
1517
  kind: "available";
1517
- input: "quiz" | "url" | "text" | "photo" | "none";
1518
+ input: "text" | "url" | "none" | "quiz" | "photo";
1518
1519
  } | {
1519
1520
  kind: "completed";
1520
1521
  } | {
@@ -1552,7 +1553,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1552
1553
  kind: "keyed";
1553
1554
  };
1554
1555
  completionCount: number;
1555
- visibility: "hidden" | "visible";
1556
+ visibility: "visible" | "hidden";
1556
1557
  missing: {
1557
1558
  quest: string;
1558
1559
  title: string;
@@ -1563,7 +1564,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1563
1564
  quest: string;
1564
1565
  member: string;
1565
1566
  evidence: string | null;
1566
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1567
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
1567
1568
  reason: string | null;
1568
1569
  retries: number;
1569
1570
  generation: number;
@@ -1597,22 +1598,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1597
1598
  })[] | null;
1598
1599
  createdAt: number;
1599
1600
  input?: {
1600
- kind: "quiz";
1601
- answers: {
1602
- [k: string]: string;
1603
- };
1604
- release?: string | undefined;
1605
- } | {
1606
1601
  kind: "text";
1607
1602
  value: string;
1608
1603
  } | {
1609
1604
  kind: "url";
1610
1605
  value: string;
1606
+ } | {
1607
+ kind: "quiz";
1608
+ answers: {
1609
+ [k: string]: string;
1610
+ };
1611
+ release?: string | undefined;
1611
1612
  } | undefined;
1612
1613
  } | null;
1613
1614
  release: string;
1614
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
1615
- lifecycle: "active" | "paused" | "archived";
1615
+ interaction: "staff" | "text" | "url" | "automatic" | "claim" | "quiz" | "photo";
1616
+ lifecycle: "paused" | "active" | "archived";
1616
1617
  rewards: ({
1617
1618
  kind: "points";
1618
1619
  label: string;
@@ -1914,7 +1915,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1914
1915
  quest: string;
1915
1916
  member: string;
1916
1917
  evidence: string | null;
1917
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1918
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
1918
1919
  reason: string | null;
1919
1920
  retries: number;
1920
1921
  generation: number;
@@ -1948,17 +1949,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1948
1949
  })[] | null;
1949
1950
  createdAt: number;
1950
1951
  input?: {
1951
- kind: "quiz";
1952
- answers: {
1953
- [k: string]: string;
1954
- };
1955
- release?: string | undefined;
1956
- } | {
1957
1952
  kind: "text";
1958
1953
  value: string;
1959
1954
  } | {
1960
1955
  kind: "url";
1961
1956
  value: string;
1957
+ } | {
1958
+ kind: "quiz";
1959
+ answers: {
1960
+ [k: string]: string;
1961
+ };
1962
+ release?: string | undefined;
1962
1963
  } | undefined;
1963
1964
  }>;
1964
1965
  progress: () => Promise<{
@@ -1999,7 +2000,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1999
2000
  start: number;
2000
2001
  end?: number | undefined;
2001
2002
  };
2002
- enrollment: "required" | "none";
2003
+ enrollment: "none" | "required";
2003
2004
  posts: "after-enrollment" | "since-start";
2004
2005
  historical: "staff" | "automatic" | "claim";
2005
2006
  } | undefined;
@@ -2027,12 +2028,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2027
2028
  actor?: "member" | "staff" | undefined;
2028
2029
  } | {
2029
2030
  kind: "manual";
2030
- input: "quiz" | "photo" | "none";
2031
+ input: "none" | "quiz" | "photo";
2031
2032
  actor?: "member" | "staff" | undefined;
2032
2033
  };
2033
2034
  availability: {
2034
2035
  kind: "available";
2035
- input: "quiz" | "url" | "text" | "photo" | "none";
2036
+ input: "text" | "url" | "none" | "quiz" | "photo";
2036
2037
  } | {
2037
2038
  kind: "completed";
2038
2039
  } | {
@@ -2070,7 +2071,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2070
2071
  kind: "keyed";
2071
2072
  };
2072
2073
  completionCount: number;
2073
- visibility: "hidden" | "visible";
2074
+ visibility: "visible" | "hidden";
2074
2075
  missing: {
2075
2076
  quest: string;
2076
2077
  title: string;
@@ -2081,7 +2082,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2081
2082
  quest: string;
2082
2083
  member: string;
2083
2084
  evidence: string | null;
2084
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2085
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
2085
2086
  reason: string | null;
2086
2087
  retries: number;
2087
2088
  generation: number;
@@ -2115,17 +2116,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2115
2116
  })[] | null;
2116
2117
  createdAt: number;
2117
2118
  input?: {
2118
- kind: "quiz";
2119
- answers: {
2120
- [k: string]: string;
2121
- };
2122
- release?: string | undefined;
2123
- } | {
2124
2119
  kind: "text";
2125
2120
  value: string;
2126
2121
  } | {
2127
2122
  kind: "url";
2128
2123
  value: string;
2124
+ } | {
2125
+ kind: "quiz";
2126
+ answers: {
2127
+ [k: string]: string;
2128
+ };
2129
+ release?: string | undefined;
2129
2130
  } | undefined;
2130
2131
  } | null;
2131
2132
  key?: string | undefined;
@@ -2264,7 +2265,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2264
2265
  quest: string;
2265
2266
  member: string;
2266
2267
  evidence: string | null;
2267
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2268
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
2268
2269
  reason: string | null;
2269
2270
  retries: number;
2270
2271
  generation: number;
@@ -2298,17 +2299,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2298
2299
  })[] | null;
2299
2300
  createdAt: number;
2300
2301
  input?: {
2301
- kind: "quiz";
2302
- answers: {
2303
- [k: string]: string;
2304
- };
2305
- release?: string | undefined;
2306
- } | {
2307
2302
  kind: "text";
2308
2303
  value: string;
2309
2304
  } | {
2310
2305
  kind: "url";
2311
2306
  value: string;
2307
+ } | {
2308
+ kind: "quiz";
2309
+ answers: {
2310
+ [k: string]: string;
2311
+ };
2312
+ release?: string | undefined;
2312
2313
  } | undefined;
2313
2314
  }>;
2314
2315
  upload: (file: File) => Promise<{
@@ -2330,7 +2331,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2330
2331
  code: string;
2331
2332
  definition: {
2332
2333
  quest: string;
2333
- runtimeVersion: 1 | 2;
2334
+ runtimeVersion: 2 | 1;
2334
2335
  title: string;
2335
2336
  presentation: {
2336
2337
  quiz?: {
@@ -2469,7 +2470,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2469
2470
  start: number;
2470
2471
  end?: number | undefined;
2471
2472
  };
2472
- enrollment: "required" | "none";
2473
+ enrollment: "none" | "required";
2473
2474
  posts: "after-enrollment" | "since-start";
2474
2475
  historical: "staff" | "automatic" | "claim";
2475
2476
  } | undefined;
@@ -2497,7 +2498,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2497
2498
  actor?: "member" | "staff" | undefined;
2498
2499
  } | {
2499
2500
  kind: "manual";
2500
- input: "quiz" | "photo" | "none";
2501
+ input: "none" | "quiz" | "photo";
2501
2502
  actor?: "member" | "staff" | undefined;
2502
2503
  };
2503
2504
  requires: {
@@ -2513,10 +2514,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2513
2514
  } | {
2514
2515
  kind: "keyed";
2515
2516
  };
2516
- visibility: "hidden" | "visible";
2517
+ visibility: "visible" | "hidden";
2517
2518
  budgets: {
2518
2519
  id: string;
2519
- scope: "member" | "project";
2520
+ scope: "project" | "member";
2520
2521
  period: "day" | "lifetime" | "week";
2521
2522
  limit: number;
2522
2523
  cost: number | {
@@ -2527,13 +2528,16 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2527
2528
  metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2528
2529
  maxAgeMs: number;
2529
2530
  } | undefined;
2531
+ profile?: {
2532
+ visible: boolean;
2533
+ } | undefined;
2530
2534
  };
2531
2535
  }[]>;
2532
2536
  template: () => Promise<{
2533
2537
  code: string;
2534
2538
  definition: {
2535
2539
  quest: string;
2536
- runtimeVersion: 1 | 2;
2540
+ runtimeVersion: 2 | 1;
2537
2541
  title: string;
2538
2542
  presentation: {
2539
2543
  quiz?: {
@@ -2672,7 +2676,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2672
2676
  start: number;
2673
2677
  end?: number | undefined;
2674
2678
  };
2675
- enrollment: "required" | "none";
2679
+ enrollment: "none" | "required";
2676
2680
  posts: "after-enrollment" | "since-start";
2677
2681
  historical: "staff" | "automatic" | "claim";
2678
2682
  } | undefined;
@@ -2700,7 +2704,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2700
2704
  actor?: "member" | "staff" | undefined;
2701
2705
  } | {
2702
2706
  kind: "manual";
2703
- input: "quiz" | "photo" | "none";
2707
+ input: "none" | "quiz" | "photo";
2704
2708
  actor?: "member" | "staff" | undefined;
2705
2709
  };
2706
2710
  requires: {
@@ -2716,10 +2720,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2716
2720
  } | {
2717
2721
  kind: "keyed";
2718
2722
  };
2719
- visibility: "hidden" | "visible";
2723
+ visibility: "visible" | "hidden";
2720
2724
  budgets: {
2721
2725
  id: string;
2722
- scope: "member" | "project";
2726
+ scope: "project" | "member";
2723
2727
  period: "day" | "lifetime" | "week";
2724
2728
  limit: number;
2725
2729
  cost: number | {
@@ -2730,12 +2734,15 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2730
2734
  metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2731
2735
  maxAgeMs: number;
2732
2736
  } | undefined;
2737
+ profile?: {
2738
+ visible: boolean;
2739
+ } | undefined;
2733
2740
  };
2734
2741
  }>;
2735
2742
  snapshot: () => Promise<{
2736
2743
  releases: {
2737
2744
  quest: string;
2738
- runtimeVersion: 1 | 2;
2745
+ runtimeVersion: 2 | 1;
2739
2746
  title: string;
2740
2747
  presentation: {
2741
2748
  quiz?: {
@@ -2874,7 +2881,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2874
2881
  start: number;
2875
2882
  end?: number | undefined;
2876
2883
  };
2877
- enrollment: "required" | "none";
2884
+ enrollment: "none" | "required";
2878
2885
  posts: "after-enrollment" | "since-start";
2879
2886
  historical: "staff" | "automatic" | "claim";
2880
2887
  } | undefined;
@@ -2902,7 +2909,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2902
2909
  actor?: "member" | "staff" | undefined;
2903
2910
  } | {
2904
2911
  kind: "manual";
2905
- input: "quiz" | "photo" | "none";
2912
+ input: "none" | "quiz" | "photo";
2906
2913
  actor?: "member" | "staff" | undefined;
2907
2914
  };
2908
2915
  requires: {
@@ -2918,10 +2925,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2918
2925
  } | {
2919
2926
  kind: "keyed";
2920
2927
  };
2921
- visibility: "hidden" | "visible";
2928
+ visibility: "visible" | "hidden";
2922
2929
  budgets: {
2923
2930
  id: string;
2924
- scope: "member" | "project";
2931
+ scope: "project" | "member";
2925
2932
  period: "day" | "lifetime" | "week";
2926
2933
  limit: number;
2927
2934
  cost: number | {
@@ -2933,11 +2940,14 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2933
2940
  id: string;
2934
2941
  createdAt: number;
2935
2942
  legacy: boolean;
2936
- lifecycle: "active" | "paused" | "archived";
2943
+ lifecycle: "paused" | "active" | "archived";
2937
2944
  performance?: {
2938
2945
  metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2939
2946
  maxAgeMs: number;
2940
2947
  } | undefined;
2948
+ profile?: {
2949
+ visible: boolean;
2950
+ } | undefined;
2941
2951
  key?: string | undefined;
2942
2952
  origin?: {
2943
2953
  typeVersion: string;
@@ -3053,7 +3063,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3053
3063
  quest: string;
3054
3064
  member: string;
3055
3065
  evidence: string | null;
3056
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
3066
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
3057
3067
  reason: string | null;
3058
3068
  retries: number;
3059
3069
  generation: number;
@@ -3087,17 +3097,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3087
3097
  })[] | null;
3088
3098
  createdAt: number;
3089
3099
  input?: {
3090
- kind: "quiz";
3091
- answers: {
3092
- [k: string]: string;
3093
- };
3094
- release?: string | undefined;
3095
- } | {
3096
3100
  kind: "text";
3097
3101
  value: string;
3098
3102
  } | {
3099
3103
  kind: "url";
3100
3104
  value: string;
3105
+ } | {
3106
+ kind: "quiz";
3107
+ answers: {
3108
+ [k: string]: string;
3109
+ };
3110
+ release?: string | undefined;
3101
3111
  } | undefined;
3102
3112
  }[];
3103
3113
  balances: {
@@ -3118,7 +3128,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3118
3128
  }>;
3119
3129
  publish: (release: ReleaseInput) => Promise<{
3120
3130
  quest: string;
3121
- runtimeVersion: 1 | 2;
3131
+ runtimeVersion: 2 | 1;
3122
3132
  title: string;
3123
3133
  presentation: {
3124
3134
  quiz?: {
@@ -3257,7 +3267,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3257
3267
  start: number;
3258
3268
  end?: number | undefined;
3259
3269
  };
3260
- enrollment: "required" | "none";
3270
+ enrollment: "none" | "required";
3261
3271
  posts: "after-enrollment" | "since-start";
3262
3272
  historical: "staff" | "automatic" | "claim";
3263
3273
  } | undefined;
@@ -3285,7 +3295,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3285
3295
  actor?: "member" | "staff" | undefined;
3286
3296
  } | {
3287
3297
  kind: "manual";
3288
- input: "quiz" | "photo" | "none";
3298
+ input: "none" | "quiz" | "photo";
3289
3299
  actor?: "member" | "staff" | undefined;
3290
3300
  };
3291
3301
  requires: {
@@ -3301,10 +3311,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3301
3311
  } | {
3302
3312
  kind: "keyed";
3303
3313
  };
3304
- visibility: "hidden" | "visible";
3314
+ visibility: "visible" | "hidden";
3305
3315
  budgets: {
3306
3316
  id: string;
3307
- scope: "member" | "project";
3317
+ scope: "project" | "member";
3308
3318
  period: "day" | "lifetime" | "week";
3309
3319
  limit: number;
3310
3320
  cost: number | {
@@ -3316,11 +3326,14 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3316
3326
  id: string;
3317
3327
  createdAt: number;
3318
3328
  legacy: boolean;
3319
- lifecycle: "active" | "paused" | "archived";
3329
+ lifecycle: "paused" | "active" | "archived";
3320
3330
  performance?: {
3321
3331
  metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
3322
3332
  maxAgeMs: number;
3323
3333
  } | undefined;
3334
+ profile?: {
3335
+ visible: boolean;
3336
+ } | undefined;
3324
3337
  key?: string | undefined;
3325
3338
  origin?: {
3326
3339
  typeVersion: string;
@@ -3349,7 +3362,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3349
3362
  }>;
3350
3363
  publishBatch: (releases: ReleaseInput[]) => Promise<{
3351
3364
  quest: string;
3352
- runtimeVersion: 1 | 2;
3365
+ runtimeVersion: 2 | 1;
3353
3366
  title: string;
3354
3367
  presentation: {
3355
3368
  quiz?: {
@@ -3488,7 +3501,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3488
3501
  start: number;
3489
3502
  end?: number | undefined;
3490
3503
  };
3491
- enrollment: "required" | "none";
3504
+ enrollment: "none" | "required";
3492
3505
  posts: "after-enrollment" | "since-start";
3493
3506
  historical: "staff" | "automatic" | "claim";
3494
3507
  } | undefined;
@@ -3516,7 +3529,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3516
3529
  actor?: "member" | "staff" | undefined;
3517
3530
  } | {
3518
3531
  kind: "manual";
3519
- input: "quiz" | "photo" | "none";
3532
+ input: "none" | "quiz" | "photo";
3520
3533
  actor?: "member" | "staff" | undefined;
3521
3534
  };
3522
3535
  requires: {
@@ -3532,10 +3545,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3532
3545
  } | {
3533
3546
  kind: "keyed";
3534
3547
  };
3535
- visibility: "hidden" | "visible";
3548
+ visibility: "visible" | "hidden";
3536
3549
  budgets: {
3537
3550
  id: string;
3538
- scope: "member" | "project";
3551
+ scope: "project" | "member";
3539
3552
  period: "day" | "lifetime" | "week";
3540
3553
  limit: number;
3541
3554
  cost: number | {
@@ -3547,11 +3560,14 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3547
3560
  id: string;
3548
3561
  createdAt: number;
3549
3562
  legacy: boolean;
3550
- lifecycle: "active" | "paused" | "archived";
3563
+ lifecycle: "paused" | "active" | "archived";
3551
3564
  performance?: {
3552
3565
  metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
3553
3566
  maxAgeMs: number;
3554
3567
  } | undefined;
3568
+ profile?: {
3569
+ visible: boolean;
3570
+ } | undefined;
3555
3571
  key?: string | undefined;
3556
3572
  origin?: {
3557
3573
  typeVersion: string;
@@ -3616,7 +3632,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3616
3632
  start: number;
3617
3633
  end?: number | undefined;
3618
3634
  };
3619
- enrollment: "required" | "none";
3635
+ enrollment: "none" | "required";
3620
3636
  posts: "after-enrollment" | "since-start";
3621
3637
  historical: "staff" | "automatic" | "claim";
3622
3638
  } | undefined;
@@ -3644,12 +3660,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3644
3660
  actor?: "member" | "staff" | undefined;
3645
3661
  } | {
3646
3662
  kind: "manual";
3647
- input: "quiz" | "photo" | "none";
3663
+ input: "none" | "quiz" | "photo";
3648
3664
  actor?: "member" | "staff" | undefined;
3649
3665
  };
3650
3666
  availability: {
3651
3667
  kind: "available";
3652
- input: "quiz" | "url" | "text" | "photo" | "none";
3668
+ input: "text" | "url" | "none" | "quiz" | "photo";
3653
3669
  } | {
3654
3670
  kind: "completed";
3655
3671
  } | {
@@ -3687,7 +3703,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3687
3703
  kind: "keyed";
3688
3704
  };
3689
3705
  completionCount: number;
3690
- visibility: "hidden" | "visible";
3706
+ visibility: "visible" | "hidden";
3691
3707
  missing: {
3692
3708
  quest: string;
3693
3709
  title: string;
@@ -3698,7 +3714,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3698
3714
  quest: string;
3699
3715
  member: string;
3700
3716
  evidence: string | null;
3701
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
3717
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
3702
3718
  reason: string | null;
3703
3719
  retries: number;
3704
3720
  generation: number;
@@ -3732,17 +3748,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3732
3748
  })[] | null;
3733
3749
  createdAt: number;
3734
3750
  input?: {
3735
- kind: "quiz";
3736
- answers: {
3737
- [k: string]: string;
3738
- };
3739
- release?: string | undefined;
3740
- } | {
3741
3751
  kind: "text";
3742
3752
  value: string;
3743
3753
  } | {
3744
3754
  kind: "url";
3745
3755
  value: string;
3756
+ } | {
3757
+ kind: "quiz";
3758
+ answers: {
3759
+ [k: string]: string;
3760
+ };
3761
+ release?: string | undefined;
3746
3762
  } | undefined;
3747
3763
  } | null;
3748
3764
  key?: string | undefined;
@@ -4124,14 +4140,14 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4124
4140
  content: {
4125
4141
  performance: (input: zod.infer<typeof contentPerformanceQuerySchema>) => Promise<{
4126
4142
  current: {
4127
- state: "needs-review" | "pending" | "failed" | "superseded" | "qualified" | "unqualified" | "content-pending" | "content-unqualified" | "waiting";
4143
+ state: "pending" | "superseded" | "qualified" | "unqualified" | "needs-review" | "failed" | "content-pending" | "content-unqualified" | "waiting";
4128
4144
  reason: string | null;
4129
4145
  contentAttempt: string;
4130
4146
  attempt: string | null;
4131
4147
  reward: {
4132
4148
  attempt: string | null;
4133
4149
  completion: string | null;
4134
- state: "awarded" | "excluded" | "unresolved";
4150
+ state: "excluded" | "unresolved" | "awarded";
4135
4151
  };
4136
4152
  };
4137
4153
  items: {
@@ -4140,7 +4156,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4140
4156
  observation: string;
4141
4157
  observedAt: number;
4142
4158
  metrics: Partial<Record<"likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks", number>>;
4143
- state: "needs-review" | "pending" | "failed" | "superseded" | "qualified" | "unqualified";
4159
+ state: "pending" | "superseded" | "qualified" | "unqualified" | "needs-review" | "failed";
4144
4160
  reason: string | null;
4145
4161
  }[];
4146
4162
  next: number | null;
@@ -4155,12 +4171,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4155
4171
  revision: string;
4156
4172
  observation: string;
4157
4173
  current: boolean;
4158
- state: "needs-review" | "pending" | "failed" | "superseded" | "qualified" | "unqualified" | "stale" | "blocked" | "unavailable";
4174
+ state: "pending" | "superseded" | "qualified" | "unqualified" | "needs-review" | "failed" | "stale" | "blocked" | "unavailable";
4159
4175
  reason: string | null;
4160
4176
  reward: {
4161
4177
  attempt: string | null;
4162
4178
  completion: string | null;
4163
- state: "awarded" | "excluded" | "unresolved";
4179
+ state: "excluded" | "unresolved" | "awarded";
4164
4180
  };
4165
4181
  }[];
4166
4182
  next: number | null;
@@ -4170,7 +4186,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4170
4186
  quest: string;
4171
4187
  content: string;
4172
4188
  release: string;
4173
- state: "pending" | "admitted" | "excluded";
4189
+ state: "admitted" | "pending" | "excluded";
4174
4190
  reason: string | null;
4175
4191
  attempt: string | null;
4176
4192
  }[];
@@ -4185,7 +4201,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4185
4201
  quest: string;
4186
4202
  content: string;
4187
4203
  release: string;
4188
- state: "pending" | "admitted" | "excluded";
4204
+ state: "admitted" | "pending" | "excluded";
4189
4205
  reason: string | null;
4190
4206
  attempt: string | null;
4191
4207
  }>;
@@ -4196,7 +4212,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4196
4212
  quest: string;
4197
4213
  member: string;
4198
4214
  evidence: string | null;
4199
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
4215
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
4200
4216
  reason: string | null;
4201
4217
  retries: number;
4202
4218
  generation: number;
@@ -4230,17 +4246,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4230
4246
  })[] | null;
4231
4247
  createdAt: number;
4232
4248
  input?: {
4233
- kind: "quiz";
4234
- answers: {
4235
- [k: string]: string;
4236
- };
4237
- release?: string | undefined;
4238
- } | {
4239
4249
  kind: "text";
4240
4250
  value: string;
4241
4251
  } | {
4242
4252
  kind: "url";
4243
4253
  value: string;
4254
+ } | {
4255
+ kind: "quiz";
4256
+ answers: {
4257
+ [k: string]: string;
4258
+ };
4259
+ release?: string | undefined;
4244
4260
  } | undefined;
4245
4261
  }>;
4246
4262
  retry: (id: string) => Promise<{
@@ -4249,7 +4265,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4249
4265
  quest: string;
4250
4266
  member: string;
4251
4267
  evidence: string | null;
4252
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
4268
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
4253
4269
  reason: string | null;
4254
4270
  retries: number;
4255
4271
  generation: number;
@@ -4283,17 +4299,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4283
4299
  })[] | null;
4284
4300
  createdAt: number;
4285
4301
  input?: {
4286
- kind: "quiz";
4287
- answers: {
4288
- [k: string]: string;
4289
- };
4290
- release?: string | undefined;
4291
- } | {
4292
4302
  kind: "text";
4293
4303
  value: string;
4294
4304
  } | {
4295
4305
  kind: "url";
4296
4306
  value: string;
4307
+ } | {
4308
+ kind: "quiz";
4309
+ answers: {
4310
+ [k: string]: string;
4311
+ };
4312
+ release?: string | undefined;
4297
4313
  } | undefined;
4298
4314
  }>;
4299
4315
  decide: (id: string, input: {
@@ -4307,7 +4323,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4307
4323
  quest: string;
4308
4324
  member: string;
4309
4325
  evidence: string | null;
4310
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
4326
+ status: "needs-review" | "failed" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected";
4311
4327
  reason: string | null;
4312
4328
  retries: number;
4313
4329
  generation: number;
@@ -4341,17 +4357,17 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
4341
4357
  })[] | null;
4342
4358
  createdAt: number;
4343
4359
  input?: {
4344
- kind: "quiz";
4345
- answers: {
4346
- [k: string]: string;
4347
- };
4348
- release?: string | undefined;
4349
- } | {
4350
4360
  kind: "text";
4351
4361
  value: string;
4352
4362
  } | {
4353
4363
  kind: "url";
4354
4364
  value: string;
4365
+ } | {
4366
+ kind: "quiz";
4367
+ answers: {
4368
+ [k: string]: string;
4369
+ };
4370
+ release?: string | undefined;
4355
4371
  } | undefined;
4356
4372
  }>;
4357
4373
  };