@speakableio/core 0.1.67 → 0.1.69

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.
@@ -0,0 +1,2746 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
4
+ import { QueryClient } from '@tanstack/react-query';
5
+ import { FirebaseFirestoreTypes, Timestamp } from '@react-native-firebase/firestore';
6
+ import { Firestore, getDoc, getDocs, addDoc, setDoc, updateDoc, deleteDoc, runTransaction, writeBatch, doc, collection, query, serverTimestamp, orderBy, limit, startAt, startAfter, endAt, endBefore, where, increment, Timestamp as Timestamp$1, FieldValue } from 'firebase/firestore';
7
+
8
+ type FirebaseInstance = FirebaseFirestoreTypes.Module | Firestore;
9
+ interface FirestoreHelpers {
10
+ getDoc: typeof getDoc;
11
+ getDocs: typeof getDocs;
12
+ addDoc: typeof addDoc;
13
+ setDoc: typeof setDoc;
14
+ updateDoc: typeof updateDoc;
15
+ deleteDoc: typeof deleteDoc;
16
+ runTransaction: typeof runTransaction;
17
+ writeBatch: typeof writeBatch;
18
+ doc: typeof doc;
19
+ collection: typeof collection;
20
+ query: typeof query;
21
+ serverTimestamp: typeof serverTimestamp;
22
+ orderBy: typeof orderBy;
23
+ limit: typeof limit;
24
+ startAt: typeof startAt;
25
+ startAfter: typeof startAfter;
26
+ endAt: typeof endAt;
27
+ endBefore: typeof endBefore;
28
+ where: typeof where;
29
+ increment: typeof increment;
30
+ }
31
+ type CustomTimestamp = Timestamp | Timestamp$1;
32
+ type CallableFunction<T = any, R = any> = (data: T) => Promise<R>;
33
+
34
+ declare const enum FeedbackTypesCard {
35
+ SuggestedResponse = "suggested_response",
36
+ Wida = "wida",
37
+ GrammarInsights = "grammar_insights",
38
+ Actfl = "actfl",
39
+ ProficiencyLevel = "proficiency_level"
40
+ }
41
+ declare const enum LeniencyCard {
42
+ CONFIDENCE = "confidence",
43
+ EASY = "easy",
44
+ NORMAL = "normal",
45
+ HARD = "hard"
46
+ }
47
+ declare const LENIENCY_OPTIONS: {
48
+ label: string;
49
+ value: LeniencyCard;
50
+ }[];
51
+ declare const STUDENT_LEVELS_OPTIONS: {
52
+ label: string;
53
+ description: string;
54
+ value: string;
55
+ }[];
56
+ declare const BASE_RESPOND_FIELD_VALUES: {
57
+ title: string;
58
+ allowRetries: boolean;
59
+ respondTime: number;
60
+ maxCharacters: number;
61
+ };
62
+ declare const BASE_REPEAT_FIELD_VALUES: {
63
+ repeat: number;
64
+ };
65
+ declare const BASE_MULTIPLE_CHOICE_FIELD_VALUES: {
66
+ MCQType: string;
67
+ answer: string[];
68
+ choices: {
69
+ option: string;
70
+ value: string;
71
+ }[];
72
+ };
73
+ declare const enum VerificationCardStatus {
74
+ VERIFIED = "VERIFIED",
75
+ WARNING = "WARNING",
76
+ NOT_RECOMMENDED = "NOT_RECOMMENDED",
77
+ NOT_WORKING = "NOT_WORKING",
78
+ NOT_CHECKED = "NOT_CHECKED"
79
+ }
80
+ declare const CARDS_COLLECTION = "flashcards";
81
+ type RefsCardsFiresotre = `${typeof CARDS_COLLECTION}/${string}`;
82
+ declare const refsCardsFiresotre: {
83
+ allCards: string;
84
+ card: (id: string) => `flashcards/${string}`;
85
+ };
86
+
87
+ interface PageActivityWithId extends PageActivity {
88
+ id: string;
89
+ }
90
+ interface PageActivity {
91
+ owners: string[];
92
+ checked?: boolean;
93
+ completed?: boolean;
94
+ media_area_id?: string | null;
95
+ media_area_layout?: 'left' | 'right' | null;
96
+ score?: number;
97
+ verificationStatus?: VerificationCardStatus;
98
+ native_text?: string;
99
+ repeat?: number;
100
+ language?: string | null;
101
+ image?: {
102
+ path?: string | null;
103
+ url?: string;
104
+ };
105
+ audio?: {
106
+ path?: string | null;
107
+ url?: string;
108
+ } | null;
109
+ notes?: string;
110
+ difficulty?: string;
111
+ default_language?: string;
112
+ target_text?: string;
113
+ type: ActivityPageType;
114
+ grading_criteria?: string;
115
+ scoring_type?: string;
116
+ grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based';
117
+ feedback_types?: string[];
118
+ rubricId?: string;
119
+ prompt?: string;
120
+ title?: string;
121
+ passing_score?: number;
122
+ maxCharacters?: number;
123
+ answer?: string[];
124
+ choices?: {
125
+ value: string;
126
+ option: string;
127
+ }[];
128
+ MCQType?: string;
129
+ multipleAttemptsAllowed?: boolean;
130
+ allowRetries?: boolean;
131
+ question?: string;
132
+ respondTime?: number;
133
+ hidePrompt?: boolean;
134
+ videoUrl?: string;
135
+ link?: string;
136
+ text?: string;
137
+ isListenAloud?: boolean;
138
+ embedCode?: string;
139
+ attempt?: number;
140
+ correct?: number;
141
+ autoGrade?: boolean;
142
+ points?: number;
143
+ shuffle?: boolean;
144
+ translation?: string;
145
+ includeAIContext?: boolean;
146
+ media_area_context_ref?: string | null;
147
+ standardId?: string;
148
+ target_proficiency_level?: string;
149
+ allowTTS?: boolean;
150
+ }
151
+ declare const enum ActivityPageType {
152
+ READ_REPEAT = "READ_REPEAT",
153
+ VIDEO = "VIDEO",
154
+ TEXT = "TEXT",
155
+ READ_RESPOND = "READ_RESPOND",
156
+ FREE_RESPONSE = "FREE_RESPONSE",
157
+ REPEAT = "REPEAT",
158
+ RESPOND = "RESPOND",
159
+ RESPOND_WRITE = "RESPOND_WRITE",
160
+ TEXT_TO_SPEECH = "TEXT_TO_SPEECH",
161
+ MULTIPLE_CHOICE = "MULTIPLE_CHOICE",
162
+ PODCAST = "PODCAST",
163
+ MEDIA_PAGE = "MEDIA_PAGE",
164
+ WRITE = "WRITE",
165
+ SHORT_ANSWER = "SHORT_ANSWER",
166
+ SHORT_STORY = "SHORT_STORY",
167
+ SPEAK = "SPEAK",
168
+ CONVERSATION = "CONVERSATION",
169
+ CONVERSATION_WRITE = "CONVERSATION_WRITE",
170
+ DIALOGUE = "DIALOGUE",
171
+ INSTRUCTION = "INSTRUCTION",
172
+ LISTEN = "LISTEN",
173
+ READ = "READ",
174
+ ANSWER = "ANSWER"
175
+ }
176
+ declare const RESPOND_PAGE_ACTIVITY_TYPES: ActivityPageType[];
177
+ declare const MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES: ActivityPageType[];
178
+ declare const REPEAT_PAGE_ACTIVITY_TYPES: ActivityPageType[];
179
+ declare const RESPOND_WRITE_PAGE_ACTIVITY_TYPES: ActivityPageType[];
180
+ declare const RESPOND_AUDIO_PAGE_ACTIVITY_TYPES: ActivityPageType[];
181
+
182
+ declare const cardsQueryKeys: {
183
+ all: string[];
184
+ one: (params: {
185
+ cardId: string;
186
+ }) => string[];
187
+ };
188
+ declare function useCards({ cardIds, enabled, asObject, }: {
189
+ cardIds: string[];
190
+ enabled: boolean;
191
+ asObject?: boolean;
192
+ }): {
193
+ cards: PageActivityWithId[];
194
+ cardsObject: Record<string, PageActivityWithId> | null;
195
+ cardsQueries: _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>[];
196
+ };
197
+ declare function useCreateCard(): {
198
+ mutationCreateCard: _tanstack_react_query.UseMutationResult<{
199
+ id: string;
200
+ } & Partial<PageActivity>, Error, {
201
+ data: Partial<PageActivity>;
202
+ }, unknown>;
203
+ };
204
+ declare function useCreateCards(): {
205
+ mutationCreateCards: _tanstack_react_query.UseMutationResult<{
206
+ id: string;
207
+ owners: string[];
208
+ checked?: boolean;
209
+ completed?: boolean;
210
+ media_area_id?: string | null;
211
+ media_area_layout?: "left" | "right" | null;
212
+ score?: number;
213
+ verificationStatus?: VerificationCardStatus;
214
+ native_text?: string;
215
+ repeat?: number;
216
+ language?: string | null;
217
+ image?: {
218
+ path?: string | null;
219
+ url?: string;
220
+ };
221
+ audio?: {
222
+ path?: string | null;
223
+ url?: string;
224
+ } | null;
225
+ notes?: string;
226
+ difficulty?: string;
227
+ default_language?: string;
228
+ target_text?: string;
229
+ type: ActivityPageType;
230
+ grading_criteria?: string;
231
+ scoring_type?: string;
232
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
233
+ feedback_types?: string[];
234
+ rubricId?: string;
235
+ prompt?: string;
236
+ title?: string;
237
+ passing_score?: number;
238
+ maxCharacters?: number;
239
+ answer?: string[];
240
+ choices?: {
241
+ value: string;
242
+ option: string;
243
+ }[];
244
+ MCQType?: string;
245
+ multipleAttemptsAllowed?: boolean;
246
+ allowRetries?: boolean;
247
+ question?: string;
248
+ respondTime?: number;
249
+ hidePrompt?: boolean;
250
+ videoUrl?: string;
251
+ link?: string;
252
+ text?: string;
253
+ isListenAloud?: boolean;
254
+ embedCode?: string;
255
+ attempt?: number;
256
+ correct?: number;
257
+ autoGrade?: boolean;
258
+ points?: number;
259
+ shuffle?: boolean;
260
+ translation?: string;
261
+ includeAIContext?: boolean;
262
+ media_area_context_ref?: string | null;
263
+ standardId?: string;
264
+ target_proficiency_level?: string;
265
+ allowTTS?: boolean;
266
+ }[], Error, {
267
+ cards: PageActivity[];
268
+ }, unknown>;
269
+ };
270
+ declare function getCardFromCache({ cardId, queryClient, }: {
271
+ cardId: string;
272
+ queryClient: QueryClient;
273
+ }): PageActivityWithId | undefined;
274
+ declare function updateCardInCache({ cardId, card, queryClient, }: {
275
+ cardId: string;
276
+ card: PageActivityWithId | null;
277
+ queryClient: QueryClient;
278
+ }): void;
279
+ declare function useGetCard({ cardId, enabled }: {
280
+ cardId: string;
281
+ enabled?: boolean;
282
+ }): _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>;
283
+
284
+ declare const createCardRepo: () => {
285
+ createCard: (args_0: {
286
+ data: Partial<PageActivity>;
287
+ }) => Promise<{
288
+ id: string;
289
+ } & Partial<PageActivity>>;
290
+ createCards: (args_0: {
291
+ cards: PageActivity[];
292
+ }) => Promise<{
293
+ id: string;
294
+ owners: string[];
295
+ checked?: boolean;
296
+ completed?: boolean;
297
+ media_area_id?: string | null;
298
+ media_area_layout?: "left" | "right" | null;
299
+ score?: number;
300
+ verificationStatus?: VerificationCardStatus;
301
+ native_text?: string;
302
+ repeat?: number;
303
+ language?: string | null;
304
+ image?: {
305
+ path?: string | null;
306
+ url?: string;
307
+ };
308
+ audio?: {
309
+ path?: string | null;
310
+ url?: string;
311
+ } | null;
312
+ notes?: string;
313
+ difficulty?: string;
314
+ default_language?: string;
315
+ target_text?: string;
316
+ type: ActivityPageType;
317
+ grading_criteria?: string;
318
+ scoring_type?: string;
319
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
320
+ feedback_types?: string[];
321
+ rubricId?: string;
322
+ prompt?: string;
323
+ title?: string;
324
+ passing_score?: number;
325
+ maxCharacters?: number;
326
+ answer?: string[];
327
+ choices?: {
328
+ value: string;
329
+ option: string;
330
+ }[];
331
+ MCQType?: string;
332
+ multipleAttemptsAllowed?: boolean;
333
+ allowRetries?: boolean;
334
+ question?: string;
335
+ respondTime?: number;
336
+ hidePrompt?: boolean;
337
+ videoUrl?: string;
338
+ link?: string;
339
+ text?: string;
340
+ isListenAloud?: boolean;
341
+ embedCode?: string;
342
+ attempt?: number;
343
+ correct?: number;
344
+ autoGrade?: boolean;
345
+ points?: number;
346
+ shuffle?: boolean;
347
+ translation?: string;
348
+ includeAIContext?: boolean;
349
+ media_area_context_ref?: string | null;
350
+ standardId?: string;
351
+ target_proficiency_level?: string;
352
+ allowTTS?: boolean;
353
+ }[]>;
354
+ getCard: (params: {
355
+ cardId: string;
356
+ }) => Promise<PageActivityWithId | null>;
357
+ };
358
+
359
+ declare function checkIsRepeatPage(cardType: ActivityPageType | undefined): boolean;
360
+ declare function checkIsMCPage(cardType: ActivityPageType | undefined): boolean;
361
+ declare function checkIsRespondPage(cardType: ActivityPageType | undefined): boolean;
362
+ declare function checkIsRespondWrittenPage(cardType: ActivityPageType | undefined): boolean;
363
+ declare function checkIsRespondAudioPage(cardType: ActivityPageType | undefined): boolean;
364
+ declare const checkIsMediaPage: (cardType: ActivityPageType | undefined) => boolean;
365
+ declare const checkIsShortAnswerPage: (cardType: ActivityPageType | undefined) => boolean;
366
+ declare const checkTypePageActivity: (cardType: ActivityPageType | undefined) => {
367
+ isRespondAudio: boolean;
368
+ isRespondWritten: boolean;
369
+ isRespond: boolean;
370
+ isMC: boolean;
371
+ isRepeat: boolean;
372
+ isMediaPage: boolean;
373
+ isShortAnswer: boolean;
374
+ };
375
+
376
+ declare function getPagePrompt(card: PageActivityWithId | undefined): {
377
+ has: boolean;
378
+ text: string | undefined;
379
+ };
380
+
381
+ interface Assignment {
382
+ name: string;
383
+ description: string;
384
+ scheduledTime?: string | null;
385
+ dueTime?: {
386
+ hours: number;
387
+ minutes: number;
388
+ nanos: number;
389
+ };
390
+ speakableio: boolean;
391
+ owners: string[];
392
+ image: {
393
+ path: string | null;
394
+ url: string;
395
+ };
396
+ dueDate: {
397
+ day: number;
398
+ month: number;
399
+ year: number;
400
+ };
401
+ teacherName: string;
402
+ courseWorkId: string | null;
403
+ dueDateTimestamp: CustomTimestamp;
404
+ scheduledTimeTimestamp: number;
405
+ active: boolean;
406
+ voice: string | null;
407
+ setId: string;
408
+ dateMade: {
409
+ seconds: number;
410
+ nanoseconds: number;
411
+ };
412
+ maxPoints: number;
413
+ courseId: string;
414
+ isAssessment: boolean;
415
+ isAvailable: boolean;
416
+ ltiDeeplink?: string;
417
+ content?: string[];
418
+ weights?: Record<string, number>;
419
+ language?: string;
420
+ types?: {
421
+ [key in ActivityPageType]?: number;
422
+ };
423
+ aiEnabled?: boolean;
424
+ }
425
+ interface AssignmentWithId extends Assignment {
426
+ id: string;
427
+ isAvailable: boolean;
428
+ scores?: unknown;
429
+ }
430
+ interface Score {
431
+ userId: string;
432
+ owners: string[];
433
+ progress: number;
434
+ score: number;
435
+ cards?: {
436
+ [cardId: string]: PageScore;
437
+ };
438
+ courseId?: string;
439
+ firstLoad?: boolean;
440
+ googleClassroomUserId?: string;
441
+ skippedCards?: number;
442
+ lastPlayed?: CustomTimestamp;
443
+ startDate?: CustomTimestamp;
444
+ submissionDate?: CustomTimestamp;
445
+ status?: 'SUBMITTED' | 'PENDING_REVIEW' | 'IN_PROGRESS' | 'FINALIZED';
446
+ submitted?: boolean;
447
+ successfulCards?: number;
448
+ total_voiceSuccess?: number;
449
+ total_voice_attempts?: number;
450
+ total_words_spoken?: number;
451
+ history?: PageScore[];
452
+ attempts?: number;
453
+ assignmentId?: string;
454
+ setId?: string;
455
+ }
456
+ interface ScoreWithId extends Score {
457
+ id: string;
458
+ }
459
+ interface PageScore {
460
+ voiceSuccess?: number;
461
+ voiceAttempts?: number;
462
+ voiceFail?: number;
463
+ completed?: boolean;
464
+ attempts?: number;
465
+ correct?: number;
466
+ success?: boolean;
467
+ aiSuccess?: boolean;
468
+ grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based';
469
+ grammar_insights?: {
470
+ type?: string;
471
+ justification?: string;
472
+ error?: boolean;
473
+ correction?: string;
474
+ }[];
475
+ promptSuccess?: boolean;
476
+ score?: number;
477
+ simple_grading?: {
478
+ justification?: string;
479
+ success?: boolean;
480
+ };
481
+ suggested_response?: string;
482
+ summary?: string;
483
+ transcript?: string;
484
+ errors?: any;
485
+ improvedResponse?: string;
486
+ audio?: string;
487
+ actfl?: {
488
+ justification: string;
489
+ level: string;
490
+ };
491
+ wida?: {
492
+ justification: string;
493
+ level: string;
494
+ };
495
+ earned_points?: number;
496
+ fileName?: string;
497
+ max_points?: number;
498
+ passing_score?: number;
499
+ rubric?: {
500
+ description: string;
501
+ justification: string;
502
+ maxPoints: number;
503
+ score: number;
504
+ score_title: string;
505
+ title: string;
506
+ }[];
507
+ scoring_type?: string;
508
+ history?: PageScore[];
509
+ media_area_opened?: boolean;
510
+ noFeedbackAvailable?: boolean;
511
+ proficiency_level?: {
512
+ standardId: string;
513
+ level: string;
514
+ justification: string;
515
+ key_indicators?: string[];
516
+ };
517
+ status?: string;
518
+ transcriptError?: string;
519
+ feedbackError?: string;
520
+ }
521
+
522
+ declare const enum AssignmentAnalyticsType {
523
+ Macro = "macro",
524
+ Gradebook = "gradebook",
525
+ Cards = "cards",
526
+ Student = "student",
527
+ StudentSummary = "student_summary",
528
+ All = "all"
529
+ }
530
+
531
+ declare const createAssignmentRepo: () => {
532
+ getAssignment: (params: {
533
+ assignmentId: string;
534
+ currentUserId: string;
535
+ analyticType?: AssignmentAnalyticsType;
536
+ studentId?: string;
537
+ }) => Promise<AssignmentWithId | {
538
+ scores: any;
539
+ id: string;
540
+ isAvailable: boolean;
541
+ name: string;
542
+ description: string;
543
+ scheduledTime?: string | null;
544
+ dueTime?: {
545
+ hours: number;
546
+ minutes: number;
547
+ nanos: number;
548
+ };
549
+ speakableio: boolean;
550
+ owners: string[];
551
+ image: {
552
+ path: string | null;
553
+ url: string;
554
+ };
555
+ dueDate: {
556
+ day: number;
557
+ month: number;
558
+ year: number;
559
+ };
560
+ teacherName: string;
561
+ courseWorkId: string | null;
562
+ dueDateTimestamp: CustomTimestamp;
563
+ scheduledTimeTimestamp: number;
564
+ active: boolean;
565
+ voice: string | null;
566
+ setId: string;
567
+ dateMade: {
568
+ seconds: number;
569
+ nanoseconds: number;
570
+ };
571
+ maxPoints: number;
572
+ courseId: string;
573
+ isAssessment: boolean;
574
+ ltiDeeplink?: string;
575
+ content?: string[];
576
+ weights?: Record<string, number>;
577
+ language?: string;
578
+ types?: { [key in ActivityPageType]?: number; };
579
+ aiEnabled?: boolean;
580
+ } | null>;
581
+ attachScoresAssignment: (args_0: {
582
+ assignments: AssignmentWithId[];
583
+ analyticType: AssignmentAnalyticsType;
584
+ studentId?: string;
585
+ currentUserId: string;
586
+ }) => Promise<{
587
+ scores: any;
588
+ id: string;
589
+ isAvailable: boolean;
590
+ name: string;
591
+ description: string;
592
+ scheduledTime?: string | null;
593
+ dueTime?: {
594
+ hours: number;
595
+ minutes: number;
596
+ nanos: number;
597
+ };
598
+ speakableio: boolean;
599
+ owners: string[];
600
+ image: {
601
+ path: string | null;
602
+ url: string;
603
+ };
604
+ dueDate: {
605
+ day: number;
606
+ month: number;
607
+ year: number;
608
+ };
609
+ teacherName: string;
610
+ courseWorkId: string | null;
611
+ dueDateTimestamp: CustomTimestamp;
612
+ scheduledTimeTimestamp: number;
613
+ active: boolean;
614
+ voice: string | null;
615
+ setId: string;
616
+ dateMade: {
617
+ seconds: number;
618
+ nanoseconds: number;
619
+ };
620
+ maxPoints: number;
621
+ courseId: string;
622
+ isAssessment: boolean;
623
+ ltiDeeplink?: string;
624
+ content?: string[];
625
+ weights?: Record<string, number>;
626
+ language?: string;
627
+ types?: { [key in ActivityPageType]?: number; };
628
+ aiEnabled?: boolean;
629
+ }[]>;
630
+ getAssignmentScores: (args_0: {
631
+ assignmentId: string;
632
+ currentUserId: string;
633
+ analyticType?: AssignmentAnalyticsType;
634
+ studentId?: string;
635
+ }) => Promise<{
636
+ scores: unknown;
637
+ id: string;
638
+ } | undefined>;
639
+ getAllAssignments: () => Promise<(AssignmentWithId & {
640
+ id: string;
641
+ })[]>;
642
+ };
643
+
644
+ declare const assignmentQueryKeys: {
645
+ all: readonly ["assignments"];
646
+ byId: (id: string) => readonly ["assignments", string];
647
+ list: () => readonly ["assignments", "list"];
648
+ };
649
+ declare function useAssignment({ assignmentId, enabled, analyticType, userId, }: {
650
+ assignmentId: string;
651
+ enabled?: boolean;
652
+ analyticType?: AssignmentAnalyticsType;
653
+ userId: string;
654
+ }): _tanstack_react_query.UseQueryResult<AssignmentWithId | {
655
+ scores: any;
656
+ id: string;
657
+ isAvailable: boolean;
658
+ name: string;
659
+ description: string;
660
+ scheduledTime?: string | null;
661
+ dueTime?: {
662
+ hours: number;
663
+ minutes: number;
664
+ nanos: number;
665
+ };
666
+ speakableio: boolean;
667
+ owners: string[];
668
+ image: {
669
+ path: string | null;
670
+ url: string;
671
+ };
672
+ dueDate: {
673
+ day: number;
674
+ month: number;
675
+ year: number;
676
+ };
677
+ teacherName: string;
678
+ courseWorkId: string | null;
679
+ dueDateTimestamp: CustomTimestamp;
680
+ scheduledTimeTimestamp: number;
681
+ active: boolean;
682
+ voice: string | null;
683
+ setId: string;
684
+ dateMade: {
685
+ seconds: number;
686
+ nanoseconds: number;
687
+ };
688
+ maxPoints: number;
689
+ courseId: string;
690
+ isAssessment: boolean;
691
+ ltiDeeplink?: string;
692
+ content?: string[];
693
+ weights?: Record<string, number>;
694
+ language?: string;
695
+ types?: { [key in ActivityPageType]?: number; };
696
+ aiEnabled?: boolean;
697
+ } | null, Error>;
698
+
699
+ declare const scoreQueryKeys: {
700
+ all: readonly ["scores"];
701
+ byId: (id: string) => readonly ["scores", string];
702
+ list: () => readonly ["scores", "list"];
703
+ };
704
+ declare function useScore({ isAssignment, activityId, userId, courseId, enabled, googleClassroomUserId, }: {
705
+ userId: string;
706
+ isAssignment: boolean;
707
+ activityId: string;
708
+ courseId?: string;
709
+ enabled?: boolean;
710
+ googleClassroomUserId?: string;
711
+ }): _tanstack_react_query.UseQueryResult<ScoreWithId, Error>;
712
+ declare function useUpdateScore(): {
713
+ mutationUpdateScore: _tanstack_react_query.UseMutationResult<Promise<void>, Error, {
714
+ userId: string;
715
+ data: Partial<Score>;
716
+ isAssignment: boolean;
717
+ activityId: string;
718
+ }, {
719
+ previousData: Partial<Score> | undefined;
720
+ }>;
721
+ };
722
+ declare function useUpdateCardScore({ isAssignment, activityId, userId, cardIds, weights, }: {
723
+ isAssignment: boolean;
724
+ userId: string;
725
+ activityId: string;
726
+ cardIds: string[];
727
+ weights: Record<string, number>;
728
+ }): {
729
+ mutationUpdateCardScore: _tanstack_react_query.UseMutationResult<{
730
+ cardId: string;
731
+ scoresUpdated: Score;
732
+ }, Error, {
733
+ cardId: string;
734
+ cardScore: PageScore;
735
+ }, void>;
736
+ };
737
+ declare function useClearScore(): {
738
+ mutationClearScore: _tanstack_react_query.UseMutationResult<{
739
+ update: Partial<Score>;
740
+ activityId: string;
741
+ }, Error, {
742
+ isAssignment: boolean;
743
+ cardId: string;
744
+ cardScores: PageScore;
745
+ userId: string;
746
+ activityId: string;
747
+ }, unknown>;
748
+ };
749
+ declare function useSubmitAssignmentScore({ onAssignmentSubmitted, studentName, }: {
750
+ onAssignmentSubmitted: (assignmentId: string) => void;
751
+ studentName: string;
752
+ }): {
753
+ submitAssignmentScore: _tanstack_react_query.UseMutateAsyncFunction<{
754
+ success: boolean;
755
+ message: string;
756
+ error?: undefined;
757
+ } | {
758
+ success: boolean;
759
+ error: unknown;
760
+ message?: undefined;
761
+ }, Error, {
762
+ assignment: AssignmentWithId;
763
+ userId: string;
764
+ cardIds: string[];
765
+ weights: Record<string, number>;
766
+ scores: Score;
767
+ status: "FINALIZED" | "IN_PROGRESS" | "PENDING_REVIEW";
768
+ }, unknown>;
769
+ isLoading: boolean;
770
+ };
771
+ declare function useSubmitPracticeScore(): {
772
+ submitPracticeScore: _tanstack_react_query.UseMutateAsyncFunction<{
773
+ success: boolean;
774
+ message: string;
775
+ error?: undefined;
776
+ } | {
777
+ success: boolean;
778
+ error: unknown;
779
+ message?: undefined;
780
+ }, Error, {
781
+ setId: string;
782
+ userId: string;
783
+ scores: Score;
784
+ }, unknown>;
785
+ isLoading: boolean;
786
+ };
787
+
788
+ interface SetWithId extends Set {
789
+ id: string;
790
+ }
791
+ interface Set {
792
+ id: string;
793
+ language: string;
794
+ ownerName: string;
795
+ weights: Record<string, number>;
796
+ repeat?: number;
797
+ voice?: string;
798
+ averagePhraseLength?: number;
799
+ passing_score?: number;
800
+ organizations?: string[];
801
+ description: string;
802
+ image: {
803
+ url: string;
804
+ path: null | string;
805
+ };
806
+ additionalLanguages?: string[];
807
+ owners: string[];
808
+ name: string;
809
+ content: string[];
810
+ types: {
811
+ [key in ActivityPageType]?: number;
812
+ };
813
+ defaultLanguage: string;
814
+ createdAt: FieldValue;
815
+ public: boolean;
816
+ defaultRubricId?: string;
817
+ difficulty?: string;
818
+ end_screen?: {
819
+ variant: 0 | 1 | 2;
820
+ title: string;
821
+ description: string;
822
+ };
823
+ mcAllowRetries?: boolean;
824
+ welcome_screen?: {
825
+ variant: 'colored' | 'blank';
826
+ };
827
+ poorFunctionalityWarning?: boolean;
828
+ status?: 'draft' | 'published';
829
+ subjects?: any[];
830
+ respondAllowRetries?: boolean;
831
+ respondAllowTTS?: boolean;
832
+ feedbackLanguage?: string;
833
+ respondMaxCharacters?: number;
834
+ respondMaxTime?: number;
835
+ }
836
+
837
+ declare const setsQueryKeys: {
838
+ all: string[];
839
+ one: (params: {
840
+ setId: string;
841
+ }) => string[];
842
+ };
843
+ declare const useSet: ({ setId, enabled }: {
844
+ setId: string;
845
+ enabled?: boolean;
846
+ }) => _tanstack_react_query.UseQueryResult<SetWithId | null, Error>;
847
+ declare function getSetFromCache({ setId, queryClient, }: {
848
+ setId: string | undefined;
849
+ queryClient: QueryClient;
850
+ }): SetWithId | null | undefined;
851
+ declare function updateSetInCache({ set, queryClient, }: {
852
+ set: SetWithId;
853
+ queryClient: QueryClient;
854
+ }): void;
855
+
856
+ declare const SETS_COLLECTION = "sets";
857
+ type RefsSetsFirestore = `${typeof SETS_COLLECTION}/${string}`;
858
+ declare const refsSetsFirestore: {
859
+ allSets: string;
860
+ set: (id: string) => `sets/${string}`;
861
+ };
862
+
863
+ declare const createSetRepo: () => {
864
+ getSet: (args_0: {
865
+ setId: string;
866
+ }) => Promise<SetWithId | null>;
867
+ };
868
+
869
+ declare const SPEAKABLE_NOTIFICATIONS: {
870
+ readonly NEW_ASSIGNMENT: "new_assignment";
871
+ readonly ASSESSMENT_SUBMITTED: "assessment_submitted";
872
+ readonly ASSESSMENT_SCORED: "assessment_scored";
873
+ readonly NEW_COMMENT: "NEW_COMMENT";
874
+ };
875
+ type SpeakableNotificationType = (typeof SPEAKABLE_NOTIFICATIONS)[keyof typeof SPEAKABLE_NOTIFICATIONS];
876
+ declare const SpeakableNotificationTypes: {
877
+ NEW_ASSIGNMENT: string;
878
+ FEEDBACK_FROM_TEACHER: string;
879
+ MESSAGE_FROM_STUDENT: string;
880
+ PHRASE_MARKED_CORRECT: string;
881
+ STUDENT_PROGRESS: string;
882
+ PLAYLIST_FOLLOWERS: string;
883
+ PLAYLIST_PLAYS: string;
884
+ ASSESSMENT_SUBMITTED: string;
885
+ ASSESSMENT_SCORED: string;
886
+ NEW_COMMENT: string;
887
+ };
888
+
889
+ declare const useCreateNotification: () => {
890
+ createNotification: (type: SpeakableNotificationType, data: any) => Promise<any>;
891
+ };
892
+
893
+ type FsClient = ReturnType<typeof createFsClientBase>;
894
+ type FsClientParams = Omit<Parameters<typeof createFsClientBase>[0], 'helpers'>;
895
+ declare function createFsClientBase({ db, helpers, httpsCallable, logEvent, }: {
896
+ db: FirebaseInstance;
897
+ helpers: FirestoreHelpers;
898
+ httpsCallable: (name: string) => CallableFunction;
899
+ logEvent: (name: string, data: any) => void;
900
+ }): {
901
+ assignmentRepo: {
902
+ getAssignment: (params: {
903
+ assignmentId: string;
904
+ currentUserId: string;
905
+ analyticType?: AssignmentAnalyticsType;
906
+ studentId?: string;
907
+ }) => Promise<AssignmentWithId | {
908
+ scores: any;
909
+ id: string;
910
+ isAvailable: boolean;
911
+ name: string;
912
+ description: string;
913
+ scheduledTime?: string | null;
914
+ dueTime?: {
915
+ hours: number;
916
+ minutes: number;
917
+ nanos: number;
918
+ };
919
+ speakableio: boolean;
920
+ owners: string[];
921
+ image: {
922
+ path: string | null;
923
+ url: string;
924
+ };
925
+ dueDate: {
926
+ day: number;
927
+ month: number;
928
+ year: number;
929
+ };
930
+ teacherName: string;
931
+ courseWorkId: string | null;
932
+ dueDateTimestamp: CustomTimestamp;
933
+ scheduledTimeTimestamp: number;
934
+ active: boolean;
935
+ voice: string | null;
936
+ setId: string;
937
+ dateMade: {
938
+ seconds: number;
939
+ nanoseconds: number;
940
+ };
941
+ maxPoints: number;
942
+ courseId: string;
943
+ isAssessment: boolean;
944
+ ltiDeeplink?: string;
945
+ content?: string[];
946
+ weights?: Record<string, number>;
947
+ language?: string;
948
+ types?: { [key in ActivityPageType]?: number; };
949
+ aiEnabled?: boolean;
950
+ } | null>;
951
+ attachScoresAssignment: (args_0: {
952
+ assignments: AssignmentWithId[];
953
+ analyticType: AssignmentAnalyticsType;
954
+ studentId?: string;
955
+ currentUserId: string;
956
+ }) => Promise<{
957
+ scores: any;
958
+ id: string;
959
+ isAvailable: boolean;
960
+ name: string;
961
+ description: string;
962
+ scheduledTime?: string | null;
963
+ dueTime?: {
964
+ hours: number;
965
+ minutes: number;
966
+ nanos: number;
967
+ };
968
+ speakableio: boolean;
969
+ owners: string[];
970
+ image: {
971
+ path: string | null;
972
+ url: string;
973
+ };
974
+ dueDate: {
975
+ day: number;
976
+ month: number;
977
+ year: number;
978
+ };
979
+ teacherName: string;
980
+ courseWorkId: string | null;
981
+ dueDateTimestamp: CustomTimestamp;
982
+ scheduledTimeTimestamp: number;
983
+ active: boolean;
984
+ voice: string | null;
985
+ setId: string;
986
+ dateMade: {
987
+ seconds: number;
988
+ nanoseconds: number;
989
+ };
990
+ maxPoints: number;
991
+ courseId: string;
992
+ isAssessment: boolean;
993
+ ltiDeeplink?: string;
994
+ content?: string[];
995
+ weights?: Record<string, number>;
996
+ language?: string;
997
+ types?: { [key in ActivityPageType]?: number; };
998
+ aiEnabled?: boolean;
999
+ }[]>;
1000
+ getAssignmentScores: (args_0: {
1001
+ assignmentId: string;
1002
+ currentUserId: string;
1003
+ analyticType?: AssignmentAnalyticsType;
1004
+ studentId?: string;
1005
+ }) => Promise<{
1006
+ scores: unknown;
1007
+ id: string;
1008
+ } | undefined>;
1009
+ getAllAssignments: () => Promise<(AssignmentWithId & {
1010
+ id: string;
1011
+ })[]>;
1012
+ };
1013
+ cardRepo: {
1014
+ createCard: (args_0: {
1015
+ data: Partial<PageActivity>;
1016
+ }) => Promise<{
1017
+ id: string;
1018
+ } & Partial<PageActivity>>;
1019
+ createCards: (args_0: {
1020
+ cards: PageActivity[];
1021
+ }) => Promise<{
1022
+ id: string;
1023
+ owners: string[];
1024
+ checked?: boolean;
1025
+ completed?: boolean;
1026
+ media_area_id?: string | null;
1027
+ media_area_layout?: "left" | "right" | null;
1028
+ score?: number;
1029
+ verificationStatus?: VerificationCardStatus;
1030
+ native_text?: string;
1031
+ repeat?: number;
1032
+ language?: string | null;
1033
+ image?: {
1034
+ path?: string | null;
1035
+ url?: string;
1036
+ };
1037
+ audio?: {
1038
+ path?: string | null;
1039
+ url?: string;
1040
+ } | null;
1041
+ notes?: string;
1042
+ difficulty?: string;
1043
+ default_language?: string;
1044
+ target_text?: string;
1045
+ type: ActivityPageType;
1046
+ grading_criteria?: string;
1047
+ scoring_type?: string;
1048
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
1049
+ feedback_types?: string[];
1050
+ rubricId?: string;
1051
+ prompt?: string;
1052
+ title?: string;
1053
+ passing_score?: number;
1054
+ maxCharacters?: number;
1055
+ answer?: string[];
1056
+ choices?: {
1057
+ value: string;
1058
+ option: string;
1059
+ }[];
1060
+ MCQType?: string;
1061
+ multipleAttemptsAllowed?: boolean;
1062
+ allowRetries?: boolean;
1063
+ question?: string;
1064
+ respondTime?: number;
1065
+ hidePrompt?: boolean;
1066
+ videoUrl?: string;
1067
+ link?: string;
1068
+ text?: string;
1069
+ isListenAloud?: boolean;
1070
+ embedCode?: string;
1071
+ attempt?: number;
1072
+ correct?: number;
1073
+ autoGrade?: boolean;
1074
+ points?: number;
1075
+ shuffle?: boolean;
1076
+ translation?: string;
1077
+ includeAIContext?: boolean;
1078
+ media_area_context_ref?: string | null;
1079
+ standardId?: string;
1080
+ target_proficiency_level?: string;
1081
+ allowTTS?: boolean;
1082
+ }[]>;
1083
+ getCard: (params: {
1084
+ cardId: string;
1085
+ }) => Promise<PageActivityWithId | null>;
1086
+ };
1087
+ };
1088
+
1089
+ interface UserProfile {
1090
+ googleClassroomUserId: string;
1091
+ image: {
1092
+ url: string;
1093
+ path: string;
1094
+ };
1095
+ displayName: string;
1096
+ isTeacher?: boolean;
1097
+ isStudent?: boolean;
1098
+ roles?: string[];
1099
+ }
1100
+ interface UserAuth {
1101
+ uid: string;
1102
+ email: string;
1103
+ displayName: string | null;
1104
+ }
1105
+ interface Lti {
1106
+ data: {
1107
+ services: {
1108
+ serviceKey: string;
1109
+ };
1110
+ };
1111
+ }
1112
+ interface User {
1113
+ profile: UserProfile;
1114
+ auth: UserAuth;
1115
+ lti: Lti;
1116
+ roles: string[];
1117
+ }
1118
+
1119
+ declare const SpeakablePlanTypes: {
1120
+ readonly basic: "basic";
1121
+ readonly teacher_pro: "teacher_pro";
1122
+ readonly school_starter: "school_starter";
1123
+ readonly organization: "organization";
1124
+ readonly starter: "starter";
1125
+ readonly growth: "growth";
1126
+ readonly professional: "professional";
1127
+ };
1128
+
1129
+ interface Permissions {
1130
+ loaded: boolean;
1131
+ loading: boolean;
1132
+ permissions: string[];
1133
+ plan: keyof typeof SpeakablePlanTypes;
1134
+ subscriptionId: string;
1135
+ isInstitutionPlan: boolean;
1136
+ type: string;
1137
+ contact: string;
1138
+ hasStudentPortfolios?: boolean;
1139
+ refreshDate: string;
1140
+ isStripePlan: boolean;
1141
+ freeOrgTrialExpired?: boolean;
1142
+ }
1143
+
1144
+ interface FsContext {
1145
+ speakableApi: Awaited<FsClient>;
1146
+ queryClient: QueryClient;
1147
+ user: User;
1148
+ permissions: Permissions;
1149
+ }
1150
+ declare const FsCtx: React.Context<FsContext | null>;
1151
+ declare function SpeakableProvider({ user, children, queryClient, permissions, fsClient, }: {
1152
+ children: React.ReactNode;
1153
+ fsClient: FsClient;
1154
+ permissions: Permissions;
1155
+ queryClient: QueryClient;
1156
+ user: User;
1157
+ }): react_jsx_runtime.JSX.Element | null;
1158
+ declare function useSpeakableApi(): FsContext;
1159
+
1160
+ declare const getRespondCardTool: ({ language, standard, }: {
1161
+ language: string;
1162
+ standard: string;
1163
+ }) => {
1164
+ tool_choice: {
1165
+ type: string;
1166
+ function: {
1167
+ name: string;
1168
+ };
1169
+ };
1170
+ tools: {
1171
+ type: string;
1172
+ function: {
1173
+ name: string;
1174
+ description: string;
1175
+ parameters: {
1176
+ type: string;
1177
+ required: string[];
1178
+ properties: {
1179
+ success: {
1180
+ type: string;
1181
+ description: string;
1182
+ };
1183
+ errors: {
1184
+ type: string;
1185
+ items: {
1186
+ type: string;
1187
+ required: string[];
1188
+ properties: {
1189
+ error: {
1190
+ type: string;
1191
+ description: string;
1192
+ };
1193
+ correction: {
1194
+ type: string;
1195
+ description: string;
1196
+ };
1197
+ justification: {
1198
+ type: string;
1199
+ description: string;
1200
+ };
1201
+ grammar_error_type: {
1202
+ type: string;
1203
+ enum: string[];
1204
+ description: string;
1205
+ };
1206
+ };
1207
+ };
1208
+ description: string;
1209
+ };
1210
+ compliments: {
1211
+ type: string;
1212
+ items: {
1213
+ type: string;
1214
+ };
1215
+ description: string;
1216
+ };
1217
+ improvedResponse: {
1218
+ type: string;
1219
+ description: string;
1220
+ };
1221
+ score: {
1222
+ type: string;
1223
+ description: string;
1224
+ };
1225
+ score_justification: {
1226
+ type: string;
1227
+ description: string;
1228
+ };
1229
+ };
1230
+ };
1231
+ };
1232
+ }[];
1233
+ };
1234
+
1235
+ declare function debounce<T extends (...args: any[]) => Promise<any>>(func: T, waitFor: number): (...args: Parameters<T>) => Promise<ReturnType<T>>;
1236
+
1237
+ declare const purify: (word: string) => string;
1238
+ declare const cleanString: (words: string) => string | string[];
1239
+ declare const getWordHash: (word: string, language: string) => string;
1240
+ declare function getPhraseLength(phrase: string, input?: string): number;
1241
+
1242
+ declare function useActivity({ id, isAssignment, onAssignmentSubmitted, ltiData, }: {
1243
+ id: string;
1244
+ isAssignment: boolean;
1245
+ onAssignmentSubmitted: (assignmentId: string) => void;
1246
+ ltiData?: {
1247
+ lineItemId?: string;
1248
+ lti_id?: string;
1249
+ serviceKey?: string;
1250
+ };
1251
+ }): {
1252
+ set: {
1253
+ data: SetWithId | null | undefined;
1254
+ query: _tanstack_react_query.UseQueryResult<SetWithId | null, Error>;
1255
+ };
1256
+ cards: {
1257
+ data: Record<string, PageActivityWithId> | null;
1258
+ query: _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>[];
1259
+ cardsArray: PageActivityWithId[];
1260
+ };
1261
+ assignment: {
1262
+ data: AssignmentWithId | {
1263
+ scores: any;
1264
+ id: string;
1265
+ isAvailable: boolean;
1266
+ name: string;
1267
+ description: string;
1268
+ scheduledTime?: string | null;
1269
+ dueTime?: {
1270
+ hours: number;
1271
+ minutes: number;
1272
+ nanos: number;
1273
+ };
1274
+ speakableio: boolean;
1275
+ owners: string[];
1276
+ image: {
1277
+ path: string | null;
1278
+ url: string;
1279
+ };
1280
+ dueDate: {
1281
+ day: number;
1282
+ month: number;
1283
+ year: number;
1284
+ };
1285
+ teacherName: string;
1286
+ courseWorkId: string | null;
1287
+ dueDateTimestamp: CustomTimestamp;
1288
+ scheduledTimeTimestamp: number;
1289
+ active: boolean;
1290
+ voice: string | null;
1291
+ setId: string;
1292
+ dateMade: {
1293
+ seconds: number;
1294
+ nanoseconds: number;
1295
+ };
1296
+ maxPoints: number;
1297
+ courseId: string;
1298
+ isAssessment: boolean;
1299
+ ltiDeeplink?: string;
1300
+ content?: string[];
1301
+ weights?: Record<string, number>;
1302
+ language?: string;
1303
+ types?: { [key in ActivityPageType]?: number; };
1304
+ aiEnabled?: boolean;
1305
+ } | null | undefined;
1306
+ query: _tanstack_react_query.UseQueryResult<AssignmentWithId | {
1307
+ scores: any;
1308
+ id: string;
1309
+ isAvailable: boolean;
1310
+ name: string;
1311
+ description: string;
1312
+ scheduledTime?: string | null;
1313
+ dueTime?: {
1314
+ hours: number;
1315
+ minutes: number;
1316
+ nanos: number;
1317
+ };
1318
+ speakableio: boolean;
1319
+ owners: string[];
1320
+ image: {
1321
+ path: string | null;
1322
+ url: string;
1323
+ };
1324
+ dueDate: {
1325
+ day: number;
1326
+ month: number;
1327
+ year: number;
1328
+ };
1329
+ teacherName: string;
1330
+ courseWorkId: string | null;
1331
+ dueDateTimestamp: CustomTimestamp;
1332
+ scheduledTimeTimestamp: number;
1333
+ active: boolean;
1334
+ voice: string | null;
1335
+ setId: string;
1336
+ dateMade: {
1337
+ seconds: number;
1338
+ nanoseconds: number;
1339
+ };
1340
+ maxPoints: number;
1341
+ courseId: string;
1342
+ isAssessment: boolean;
1343
+ ltiDeeplink?: string;
1344
+ content?: string[];
1345
+ weights?: Record<string, number>;
1346
+ language?: string;
1347
+ types?: { [key in ActivityPageType]?: number; };
1348
+ aiEnabled?: boolean;
1349
+ } | null, Error>;
1350
+ };
1351
+ scores: {
1352
+ data: ScoreWithId | undefined;
1353
+ query: _tanstack_react_query.UseQueryResult<ScoreWithId, Error>;
1354
+ actions: {
1355
+ update: (data: Partial<Score>) => void;
1356
+ clear: ({ cardId, wasCompleted, }: {
1357
+ cardId: string;
1358
+ wasCompleted?: boolean;
1359
+ }) => void;
1360
+ submit: () => Promise<{
1361
+ success: boolean;
1362
+ message: string;
1363
+ error?: undefined;
1364
+ } | {
1365
+ success: boolean;
1366
+ error: unknown;
1367
+ message?: undefined;
1368
+ }>;
1369
+ updateCard: (cardId: string, cardScore: PageScore) => void;
1370
+ logGradingStandardEntry: ({ cardId, gradingStandard, type, }: {
1371
+ cardId: string;
1372
+ gradingStandard: {
1373
+ level: string;
1374
+ justification: string;
1375
+ };
1376
+ type: "actfl" | "wida" | "custom";
1377
+ }) => void;
1378
+ };
1379
+ };
1380
+ };
1381
+
1382
+ interface CreditContract {
1383
+ allocationSource: string;
1384
+ createdAt: string;
1385
+ creditsAllocatedThisPeriod: number;
1386
+ effectivePlanId: string;
1387
+ email: string;
1388
+ isUnlimited: boolean;
1389
+ lastUpdatedAt: string;
1390
+ ownerType: string;
1391
+ periodStart: string;
1392
+ periodEnd: string;
1393
+ planTermEndTimestamp: string | null;
1394
+ sourceDetails: Record<string, unknown>;
1395
+ creditsAvailable?: number;
1396
+ topOffCreditsAvailable?: number;
1397
+ }
1398
+ declare const creditQueryKeys: {
1399
+ userCredits: (uid: string) => readonly ["userCredits", string];
1400
+ };
1401
+ declare const useUserCredits: () => {
1402
+ data: {
1403
+ id: string;
1404
+ userId: string;
1405
+ email: string;
1406
+ effectivePlanId: string;
1407
+ status: string;
1408
+ isUnlimited: boolean;
1409
+ creditsAvailable: number;
1410
+ creditsAllocatedThisPeriod: number;
1411
+ topOffCreditsAvailable: number;
1412
+ topOffCreditsTotal: number;
1413
+ allocationSource: string;
1414
+ sourceDetails: {};
1415
+ periodStart: null;
1416
+ periodEnd: null;
1417
+ planTermEndTimestamp: null;
1418
+ ownerType: string;
1419
+ createdAt: string;
1420
+ lastUpdatedAt: string;
1421
+ } | {
1422
+ totalCreditsAvailable: number;
1423
+ allocationSource: string;
1424
+ createdAt: string;
1425
+ creditsAllocatedThisPeriod: number;
1426
+ effectivePlanId: string;
1427
+ email: string;
1428
+ isUnlimited: boolean;
1429
+ lastUpdatedAt: string;
1430
+ ownerType: string;
1431
+ periodStart: string;
1432
+ periodEnd: string;
1433
+ planTermEndTimestamp: string | null;
1434
+ sourceDetails: Record<string, unknown>;
1435
+ creditsAvailable?: number;
1436
+ topOffCreditsAvailable?: number;
1437
+ id: string;
1438
+ userId?: undefined;
1439
+ status?: undefined;
1440
+ topOffCreditsTotal?: undefined;
1441
+ };
1442
+ error: Error;
1443
+ isError: true;
1444
+ isPending: false;
1445
+ isLoading: false;
1446
+ isLoadingError: false;
1447
+ isRefetchError: true;
1448
+ isSuccess: false;
1449
+ isPlaceholderData: false;
1450
+ status: "error";
1451
+ dataUpdatedAt: number;
1452
+ errorUpdatedAt: number;
1453
+ failureCount: number;
1454
+ failureReason: Error | null;
1455
+ errorUpdateCount: number;
1456
+ isFetched: boolean;
1457
+ isFetchedAfterMount: boolean;
1458
+ isFetching: boolean;
1459
+ isInitialLoading: boolean;
1460
+ isPaused: boolean;
1461
+ isRefetching: boolean;
1462
+ isStale: boolean;
1463
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
1464
+ id: string;
1465
+ userId: string;
1466
+ email: string;
1467
+ effectivePlanId: string;
1468
+ status: string;
1469
+ isUnlimited: boolean;
1470
+ creditsAvailable: number;
1471
+ creditsAllocatedThisPeriod: number;
1472
+ topOffCreditsAvailable: number;
1473
+ topOffCreditsTotal: number;
1474
+ allocationSource: string;
1475
+ sourceDetails: {};
1476
+ periodStart: null;
1477
+ periodEnd: null;
1478
+ planTermEndTimestamp: null;
1479
+ ownerType: string;
1480
+ createdAt: string;
1481
+ lastUpdatedAt: string;
1482
+ } | {
1483
+ totalCreditsAvailable: number;
1484
+ allocationSource: string;
1485
+ createdAt: string;
1486
+ creditsAllocatedThisPeriod: number;
1487
+ effectivePlanId: string;
1488
+ email: string;
1489
+ isUnlimited: boolean;
1490
+ lastUpdatedAt: string;
1491
+ ownerType: string;
1492
+ periodStart: string;
1493
+ periodEnd: string;
1494
+ planTermEndTimestamp: string | null;
1495
+ sourceDetails: Record<string, unknown>;
1496
+ creditsAvailable?: number;
1497
+ topOffCreditsAvailable?: number;
1498
+ id: string;
1499
+ userId?: undefined;
1500
+ status?: undefined;
1501
+ topOffCreditsTotal?: undefined;
1502
+ }, Error>>;
1503
+ fetchStatus: _tanstack_react_query.FetchStatus;
1504
+ promise: Promise<{
1505
+ id: string;
1506
+ userId: string;
1507
+ email: string;
1508
+ effectivePlanId: string;
1509
+ status: string;
1510
+ isUnlimited: boolean;
1511
+ creditsAvailable: number;
1512
+ creditsAllocatedThisPeriod: number;
1513
+ topOffCreditsAvailable: number;
1514
+ topOffCreditsTotal: number;
1515
+ allocationSource: string;
1516
+ sourceDetails: {};
1517
+ periodStart: null;
1518
+ periodEnd: null;
1519
+ planTermEndTimestamp: null;
1520
+ ownerType: string;
1521
+ createdAt: string;
1522
+ lastUpdatedAt: string;
1523
+ } | {
1524
+ totalCreditsAvailable: number;
1525
+ allocationSource: string;
1526
+ createdAt: string;
1527
+ creditsAllocatedThisPeriod: number;
1528
+ effectivePlanId: string;
1529
+ email: string;
1530
+ isUnlimited: boolean;
1531
+ lastUpdatedAt: string;
1532
+ ownerType: string;
1533
+ periodStart: string;
1534
+ periodEnd: string;
1535
+ planTermEndTimestamp: string | null;
1536
+ sourceDetails: Record<string, unknown>;
1537
+ creditsAvailable?: number;
1538
+ topOffCreditsAvailable?: number;
1539
+ id: string;
1540
+ userId?: undefined;
1541
+ status?: undefined;
1542
+ topOffCreditsTotal?: undefined;
1543
+ }>;
1544
+ } | {
1545
+ data: {
1546
+ id: string;
1547
+ userId: string;
1548
+ email: string;
1549
+ effectivePlanId: string;
1550
+ status: string;
1551
+ isUnlimited: boolean;
1552
+ creditsAvailable: number;
1553
+ creditsAllocatedThisPeriod: number;
1554
+ topOffCreditsAvailable: number;
1555
+ topOffCreditsTotal: number;
1556
+ allocationSource: string;
1557
+ sourceDetails: {};
1558
+ periodStart: null;
1559
+ periodEnd: null;
1560
+ planTermEndTimestamp: null;
1561
+ ownerType: string;
1562
+ createdAt: string;
1563
+ lastUpdatedAt: string;
1564
+ } | {
1565
+ totalCreditsAvailable: number;
1566
+ allocationSource: string;
1567
+ createdAt: string;
1568
+ creditsAllocatedThisPeriod: number;
1569
+ effectivePlanId: string;
1570
+ email: string;
1571
+ isUnlimited: boolean;
1572
+ lastUpdatedAt: string;
1573
+ ownerType: string;
1574
+ periodStart: string;
1575
+ periodEnd: string;
1576
+ planTermEndTimestamp: string | null;
1577
+ sourceDetails: Record<string, unknown>;
1578
+ creditsAvailable?: number;
1579
+ topOffCreditsAvailable?: number;
1580
+ id: string;
1581
+ userId?: undefined;
1582
+ status?: undefined;
1583
+ topOffCreditsTotal?: undefined;
1584
+ };
1585
+ error: null;
1586
+ isError: false;
1587
+ isPending: false;
1588
+ isLoading: false;
1589
+ isLoadingError: false;
1590
+ isRefetchError: false;
1591
+ isSuccess: true;
1592
+ isPlaceholderData: false;
1593
+ status: "success";
1594
+ dataUpdatedAt: number;
1595
+ errorUpdatedAt: number;
1596
+ failureCount: number;
1597
+ failureReason: Error | null;
1598
+ errorUpdateCount: number;
1599
+ isFetched: boolean;
1600
+ isFetchedAfterMount: boolean;
1601
+ isFetching: boolean;
1602
+ isInitialLoading: boolean;
1603
+ isPaused: boolean;
1604
+ isRefetching: boolean;
1605
+ isStale: boolean;
1606
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
1607
+ id: string;
1608
+ userId: string;
1609
+ email: string;
1610
+ effectivePlanId: string;
1611
+ status: string;
1612
+ isUnlimited: boolean;
1613
+ creditsAvailable: number;
1614
+ creditsAllocatedThisPeriod: number;
1615
+ topOffCreditsAvailable: number;
1616
+ topOffCreditsTotal: number;
1617
+ allocationSource: string;
1618
+ sourceDetails: {};
1619
+ periodStart: null;
1620
+ periodEnd: null;
1621
+ planTermEndTimestamp: null;
1622
+ ownerType: string;
1623
+ createdAt: string;
1624
+ lastUpdatedAt: string;
1625
+ } | {
1626
+ totalCreditsAvailable: number;
1627
+ allocationSource: string;
1628
+ createdAt: string;
1629
+ creditsAllocatedThisPeriod: number;
1630
+ effectivePlanId: string;
1631
+ email: string;
1632
+ isUnlimited: boolean;
1633
+ lastUpdatedAt: string;
1634
+ ownerType: string;
1635
+ periodStart: string;
1636
+ periodEnd: string;
1637
+ planTermEndTimestamp: string | null;
1638
+ sourceDetails: Record<string, unknown>;
1639
+ creditsAvailable?: number;
1640
+ topOffCreditsAvailable?: number;
1641
+ id: string;
1642
+ userId?: undefined;
1643
+ status?: undefined;
1644
+ topOffCreditsTotal?: undefined;
1645
+ }, Error>>;
1646
+ fetchStatus: _tanstack_react_query.FetchStatus;
1647
+ promise: Promise<{
1648
+ id: string;
1649
+ userId: string;
1650
+ email: string;
1651
+ effectivePlanId: string;
1652
+ status: string;
1653
+ isUnlimited: boolean;
1654
+ creditsAvailable: number;
1655
+ creditsAllocatedThisPeriod: number;
1656
+ topOffCreditsAvailable: number;
1657
+ topOffCreditsTotal: number;
1658
+ allocationSource: string;
1659
+ sourceDetails: {};
1660
+ periodStart: null;
1661
+ periodEnd: null;
1662
+ planTermEndTimestamp: null;
1663
+ ownerType: string;
1664
+ createdAt: string;
1665
+ lastUpdatedAt: string;
1666
+ } | {
1667
+ totalCreditsAvailable: number;
1668
+ allocationSource: string;
1669
+ createdAt: string;
1670
+ creditsAllocatedThisPeriod: number;
1671
+ effectivePlanId: string;
1672
+ email: string;
1673
+ isUnlimited: boolean;
1674
+ lastUpdatedAt: string;
1675
+ ownerType: string;
1676
+ periodStart: string;
1677
+ periodEnd: string;
1678
+ planTermEndTimestamp: string | null;
1679
+ sourceDetails: Record<string, unknown>;
1680
+ creditsAvailable?: number;
1681
+ topOffCreditsAvailable?: number;
1682
+ id: string;
1683
+ userId?: undefined;
1684
+ status?: undefined;
1685
+ topOffCreditsTotal?: undefined;
1686
+ }>;
1687
+ } | {
1688
+ data: undefined;
1689
+ error: Error;
1690
+ isError: true;
1691
+ isPending: false;
1692
+ isLoading: false;
1693
+ isLoadingError: true;
1694
+ isRefetchError: false;
1695
+ isSuccess: false;
1696
+ isPlaceholderData: false;
1697
+ status: "error";
1698
+ dataUpdatedAt: number;
1699
+ errorUpdatedAt: number;
1700
+ failureCount: number;
1701
+ failureReason: Error | null;
1702
+ errorUpdateCount: number;
1703
+ isFetched: boolean;
1704
+ isFetchedAfterMount: boolean;
1705
+ isFetching: boolean;
1706
+ isInitialLoading: boolean;
1707
+ isPaused: boolean;
1708
+ isRefetching: boolean;
1709
+ isStale: boolean;
1710
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
1711
+ id: string;
1712
+ userId: string;
1713
+ email: string;
1714
+ effectivePlanId: string;
1715
+ status: string;
1716
+ isUnlimited: boolean;
1717
+ creditsAvailable: number;
1718
+ creditsAllocatedThisPeriod: number;
1719
+ topOffCreditsAvailable: number;
1720
+ topOffCreditsTotal: number;
1721
+ allocationSource: string;
1722
+ sourceDetails: {};
1723
+ periodStart: null;
1724
+ periodEnd: null;
1725
+ planTermEndTimestamp: null;
1726
+ ownerType: string;
1727
+ createdAt: string;
1728
+ lastUpdatedAt: string;
1729
+ } | {
1730
+ totalCreditsAvailable: number;
1731
+ allocationSource: string;
1732
+ createdAt: string;
1733
+ creditsAllocatedThisPeriod: number;
1734
+ effectivePlanId: string;
1735
+ email: string;
1736
+ isUnlimited: boolean;
1737
+ lastUpdatedAt: string;
1738
+ ownerType: string;
1739
+ periodStart: string;
1740
+ periodEnd: string;
1741
+ planTermEndTimestamp: string | null;
1742
+ sourceDetails: Record<string, unknown>;
1743
+ creditsAvailable?: number;
1744
+ topOffCreditsAvailable?: number;
1745
+ id: string;
1746
+ userId?: undefined;
1747
+ status?: undefined;
1748
+ topOffCreditsTotal?: undefined;
1749
+ }, Error>>;
1750
+ fetchStatus: _tanstack_react_query.FetchStatus;
1751
+ promise: Promise<{
1752
+ id: string;
1753
+ userId: string;
1754
+ email: string;
1755
+ effectivePlanId: string;
1756
+ status: string;
1757
+ isUnlimited: boolean;
1758
+ creditsAvailable: number;
1759
+ creditsAllocatedThisPeriod: number;
1760
+ topOffCreditsAvailable: number;
1761
+ topOffCreditsTotal: number;
1762
+ allocationSource: string;
1763
+ sourceDetails: {};
1764
+ periodStart: null;
1765
+ periodEnd: null;
1766
+ planTermEndTimestamp: null;
1767
+ ownerType: string;
1768
+ createdAt: string;
1769
+ lastUpdatedAt: string;
1770
+ } | {
1771
+ totalCreditsAvailable: number;
1772
+ allocationSource: string;
1773
+ createdAt: string;
1774
+ creditsAllocatedThisPeriod: number;
1775
+ effectivePlanId: string;
1776
+ email: string;
1777
+ isUnlimited: boolean;
1778
+ lastUpdatedAt: string;
1779
+ ownerType: string;
1780
+ periodStart: string;
1781
+ periodEnd: string;
1782
+ planTermEndTimestamp: string | null;
1783
+ sourceDetails: Record<string, unknown>;
1784
+ creditsAvailable?: number;
1785
+ topOffCreditsAvailable?: number;
1786
+ id: string;
1787
+ userId?: undefined;
1788
+ status?: undefined;
1789
+ topOffCreditsTotal?: undefined;
1790
+ }>;
1791
+ } | {
1792
+ data: undefined;
1793
+ error: null;
1794
+ isError: false;
1795
+ isPending: true;
1796
+ isLoading: true;
1797
+ isLoadingError: false;
1798
+ isRefetchError: false;
1799
+ isSuccess: false;
1800
+ isPlaceholderData: false;
1801
+ status: "pending";
1802
+ dataUpdatedAt: number;
1803
+ errorUpdatedAt: number;
1804
+ failureCount: number;
1805
+ failureReason: Error | null;
1806
+ errorUpdateCount: number;
1807
+ isFetched: boolean;
1808
+ isFetchedAfterMount: boolean;
1809
+ isFetching: boolean;
1810
+ isInitialLoading: boolean;
1811
+ isPaused: boolean;
1812
+ isRefetching: boolean;
1813
+ isStale: boolean;
1814
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
1815
+ id: string;
1816
+ userId: string;
1817
+ email: string;
1818
+ effectivePlanId: string;
1819
+ status: string;
1820
+ isUnlimited: boolean;
1821
+ creditsAvailable: number;
1822
+ creditsAllocatedThisPeriod: number;
1823
+ topOffCreditsAvailable: number;
1824
+ topOffCreditsTotal: number;
1825
+ allocationSource: string;
1826
+ sourceDetails: {};
1827
+ periodStart: null;
1828
+ periodEnd: null;
1829
+ planTermEndTimestamp: null;
1830
+ ownerType: string;
1831
+ createdAt: string;
1832
+ lastUpdatedAt: string;
1833
+ } | {
1834
+ totalCreditsAvailable: number;
1835
+ allocationSource: string;
1836
+ createdAt: string;
1837
+ creditsAllocatedThisPeriod: number;
1838
+ effectivePlanId: string;
1839
+ email: string;
1840
+ isUnlimited: boolean;
1841
+ lastUpdatedAt: string;
1842
+ ownerType: string;
1843
+ periodStart: string;
1844
+ periodEnd: string;
1845
+ planTermEndTimestamp: string | null;
1846
+ sourceDetails: Record<string, unknown>;
1847
+ creditsAvailable?: number;
1848
+ topOffCreditsAvailable?: number;
1849
+ id: string;
1850
+ userId?: undefined;
1851
+ status?: undefined;
1852
+ topOffCreditsTotal?: undefined;
1853
+ }, Error>>;
1854
+ fetchStatus: _tanstack_react_query.FetchStatus;
1855
+ promise: Promise<{
1856
+ id: string;
1857
+ userId: string;
1858
+ email: string;
1859
+ effectivePlanId: string;
1860
+ status: string;
1861
+ isUnlimited: boolean;
1862
+ creditsAvailable: number;
1863
+ creditsAllocatedThisPeriod: number;
1864
+ topOffCreditsAvailable: number;
1865
+ topOffCreditsTotal: number;
1866
+ allocationSource: string;
1867
+ sourceDetails: {};
1868
+ periodStart: null;
1869
+ periodEnd: null;
1870
+ planTermEndTimestamp: null;
1871
+ ownerType: string;
1872
+ createdAt: string;
1873
+ lastUpdatedAt: string;
1874
+ } | {
1875
+ totalCreditsAvailable: number;
1876
+ allocationSource: string;
1877
+ createdAt: string;
1878
+ creditsAllocatedThisPeriod: number;
1879
+ effectivePlanId: string;
1880
+ email: string;
1881
+ isUnlimited: boolean;
1882
+ lastUpdatedAt: string;
1883
+ ownerType: string;
1884
+ periodStart: string;
1885
+ periodEnd: string;
1886
+ planTermEndTimestamp: string | null;
1887
+ sourceDetails: Record<string, unknown>;
1888
+ creditsAvailable?: number;
1889
+ topOffCreditsAvailable?: number;
1890
+ id: string;
1891
+ userId?: undefined;
1892
+ status?: undefined;
1893
+ topOffCreditsTotal?: undefined;
1894
+ }>;
1895
+ } | {
1896
+ data: undefined;
1897
+ error: null;
1898
+ isError: false;
1899
+ isPending: true;
1900
+ isLoadingError: false;
1901
+ isRefetchError: false;
1902
+ isSuccess: false;
1903
+ isPlaceholderData: false;
1904
+ status: "pending";
1905
+ dataUpdatedAt: number;
1906
+ errorUpdatedAt: number;
1907
+ failureCount: number;
1908
+ failureReason: Error | null;
1909
+ errorUpdateCount: number;
1910
+ isFetched: boolean;
1911
+ isFetchedAfterMount: boolean;
1912
+ isFetching: boolean;
1913
+ isLoading: boolean;
1914
+ isInitialLoading: boolean;
1915
+ isPaused: boolean;
1916
+ isRefetching: boolean;
1917
+ isStale: boolean;
1918
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
1919
+ id: string;
1920
+ userId: string;
1921
+ email: string;
1922
+ effectivePlanId: string;
1923
+ status: string;
1924
+ isUnlimited: boolean;
1925
+ creditsAvailable: number;
1926
+ creditsAllocatedThisPeriod: number;
1927
+ topOffCreditsAvailable: number;
1928
+ topOffCreditsTotal: number;
1929
+ allocationSource: string;
1930
+ sourceDetails: {};
1931
+ periodStart: null;
1932
+ periodEnd: null;
1933
+ planTermEndTimestamp: null;
1934
+ ownerType: string;
1935
+ createdAt: string;
1936
+ lastUpdatedAt: string;
1937
+ } | {
1938
+ totalCreditsAvailable: number;
1939
+ allocationSource: string;
1940
+ createdAt: string;
1941
+ creditsAllocatedThisPeriod: number;
1942
+ effectivePlanId: string;
1943
+ email: string;
1944
+ isUnlimited: boolean;
1945
+ lastUpdatedAt: string;
1946
+ ownerType: string;
1947
+ periodStart: string;
1948
+ periodEnd: string;
1949
+ planTermEndTimestamp: string | null;
1950
+ sourceDetails: Record<string, unknown>;
1951
+ creditsAvailable?: number;
1952
+ topOffCreditsAvailable?: number;
1953
+ id: string;
1954
+ userId?: undefined;
1955
+ status?: undefined;
1956
+ topOffCreditsTotal?: undefined;
1957
+ }, Error>>;
1958
+ fetchStatus: _tanstack_react_query.FetchStatus;
1959
+ promise: Promise<{
1960
+ id: string;
1961
+ userId: string;
1962
+ email: string;
1963
+ effectivePlanId: string;
1964
+ status: string;
1965
+ isUnlimited: boolean;
1966
+ creditsAvailable: number;
1967
+ creditsAllocatedThisPeriod: number;
1968
+ topOffCreditsAvailable: number;
1969
+ topOffCreditsTotal: number;
1970
+ allocationSource: string;
1971
+ sourceDetails: {};
1972
+ periodStart: null;
1973
+ periodEnd: null;
1974
+ planTermEndTimestamp: null;
1975
+ ownerType: string;
1976
+ createdAt: string;
1977
+ lastUpdatedAt: string;
1978
+ } | {
1979
+ totalCreditsAvailable: number;
1980
+ allocationSource: string;
1981
+ createdAt: string;
1982
+ creditsAllocatedThisPeriod: number;
1983
+ effectivePlanId: string;
1984
+ email: string;
1985
+ isUnlimited: boolean;
1986
+ lastUpdatedAt: string;
1987
+ ownerType: string;
1988
+ periodStart: string;
1989
+ periodEnd: string;
1990
+ planTermEndTimestamp: string | null;
1991
+ sourceDetails: Record<string, unknown>;
1992
+ creditsAvailable?: number;
1993
+ topOffCreditsAvailable?: number;
1994
+ id: string;
1995
+ userId?: undefined;
1996
+ status?: undefined;
1997
+ topOffCreditsTotal?: undefined;
1998
+ }>;
1999
+ } | {
2000
+ data: {
2001
+ id: string;
2002
+ userId: string;
2003
+ email: string;
2004
+ effectivePlanId: string;
2005
+ status: string;
2006
+ isUnlimited: boolean;
2007
+ creditsAvailable: number;
2008
+ creditsAllocatedThisPeriod: number;
2009
+ topOffCreditsAvailable: number;
2010
+ topOffCreditsTotal: number;
2011
+ allocationSource: string;
2012
+ sourceDetails: {};
2013
+ periodStart: null;
2014
+ periodEnd: null;
2015
+ planTermEndTimestamp: null;
2016
+ ownerType: string;
2017
+ createdAt: string;
2018
+ lastUpdatedAt: string;
2019
+ } | {
2020
+ totalCreditsAvailable: number;
2021
+ allocationSource: string;
2022
+ createdAt: string;
2023
+ creditsAllocatedThisPeriod: number;
2024
+ effectivePlanId: string;
2025
+ email: string;
2026
+ isUnlimited: boolean;
2027
+ lastUpdatedAt: string;
2028
+ ownerType: string;
2029
+ periodStart: string;
2030
+ periodEnd: string;
2031
+ planTermEndTimestamp: string | null;
2032
+ sourceDetails: Record<string, unknown>;
2033
+ creditsAvailable?: number;
2034
+ topOffCreditsAvailable?: number;
2035
+ id: string;
2036
+ userId?: undefined;
2037
+ status?: undefined;
2038
+ topOffCreditsTotal?: undefined;
2039
+ };
2040
+ isError: false;
2041
+ error: null;
2042
+ isPending: false;
2043
+ isLoading: false;
2044
+ isLoadingError: false;
2045
+ isRefetchError: false;
2046
+ isSuccess: true;
2047
+ isPlaceholderData: true;
2048
+ status: "success";
2049
+ dataUpdatedAt: number;
2050
+ errorUpdatedAt: number;
2051
+ failureCount: number;
2052
+ failureReason: Error | null;
2053
+ errorUpdateCount: number;
2054
+ isFetched: boolean;
2055
+ isFetchedAfterMount: boolean;
2056
+ isFetching: boolean;
2057
+ isInitialLoading: boolean;
2058
+ isPaused: boolean;
2059
+ isRefetching: boolean;
2060
+ isStale: boolean;
2061
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
2062
+ id: string;
2063
+ userId: string;
2064
+ email: string;
2065
+ effectivePlanId: string;
2066
+ status: string;
2067
+ isUnlimited: boolean;
2068
+ creditsAvailable: number;
2069
+ creditsAllocatedThisPeriod: number;
2070
+ topOffCreditsAvailable: number;
2071
+ topOffCreditsTotal: number;
2072
+ allocationSource: string;
2073
+ sourceDetails: {};
2074
+ periodStart: null;
2075
+ periodEnd: null;
2076
+ planTermEndTimestamp: null;
2077
+ ownerType: string;
2078
+ createdAt: string;
2079
+ lastUpdatedAt: string;
2080
+ } | {
2081
+ totalCreditsAvailable: number;
2082
+ allocationSource: string;
2083
+ createdAt: string;
2084
+ creditsAllocatedThisPeriod: number;
2085
+ effectivePlanId: string;
2086
+ email: string;
2087
+ isUnlimited: boolean;
2088
+ lastUpdatedAt: string;
2089
+ ownerType: string;
2090
+ periodStart: string;
2091
+ periodEnd: string;
2092
+ planTermEndTimestamp: string | null;
2093
+ sourceDetails: Record<string, unknown>;
2094
+ creditsAvailable?: number;
2095
+ topOffCreditsAvailable?: number;
2096
+ id: string;
2097
+ userId?: undefined;
2098
+ status?: undefined;
2099
+ topOffCreditsTotal?: undefined;
2100
+ }, Error>>;
2101
+ fetchStatus: _tanstack_react_query.FetchStatus;
2102
+ promise: Promise<{
2103
+ id: string;
2104
+ userId: string;
2105
+ email: string;
2106
+ effectivePlanId: string;
2107
+ status: string;
2108
+ isUnlimited: boolean;
2109
+ creditsAvailable: number;
2110
+ creditsAllocatedThisPeriod: number;
2111
+ topOffCreditsAvailable: number;
2112
+ topOffCreditsTotal: number;
2113
+ allocationSource: string;
2114
+ sourceDetails: {};
2115
+ periodStart: null;
2116
+ periodEnd: null;
2117
+ planTermEndTimestamp: null;
2118
+ ownerType: string;
2119
+ createdAt: string;
2120
+ lastUpdatedAt: string;
2121
+ } | {
2122
+ totalCreditsAvailable: number;
2123
+ allocationSource: string;
2124
+ createdAt: string;
2125
+ creditsAllocatedThisPeriod: number;
2126
+ effectivePlanId: string;
2127
+ email: string;
2128
+ isUnlimited: boolean;
2129
+ lastUpdatedAt: string;
2130
+ ownerType: string;
2131
+ periodStart: string;
2132
+ periodEnd: string;
2133
+ planTermEndTimestamp: string | null;
2134
+ sourceDetails: Record<string, unknown>;
2135
+ creditsAvailable?: number;
2136
+ topOffCreditsAvailable?: number;
2137
+ id: string;
2138
+ userId?: undefined;
2139
+ status?: undefined;
2140
+ topOffCreditsTotal?: undefined;
2141
+ }>;
2142
+ };
2143
+
2144
+ interface OrganizationAccess {
2145
+ hasUnlimitedAccess: boolean;
2146
+ subscriptionId: string | null;
2147
+ organizationId: string | null;
2148
+ organizationName: string | null;
2149
+ subscriptionEndDate: Date | null;
2150
+ accessType: 'organization' | 'individual' | 'institution_subscriptions';
2151
+ }
2152
+ interface InstitutionSubscription {
2153
+ id: string;
2154
+ institutionId: string;
2155
+ name: string;
2156
+ plan: string;
2157
+ endDate: Date;
2158
+ }
2159
+ interface Organization {
2160
+ id: string;
2161
+ name: string;
2162
+ members: string[];
2163
+ masterSubscriptionStatus: string;
2164
+ masterSubscriptionId: string;
2165
+ masterSubscriptionEndDate: Date;
2166
+ }
2167
+ declare const useOrganizationAccess: () => {
2168
+ data: OrganizationAccess;
2169
+ error: Error;
2170
+ isError: true;
2171
+ isPending: false;
2172
+ isLoading: false;
2173
+ isLoadingError: false;
2174
+ isRefetchError: true;
2175
+ isSuccess: false;
2176
+ isPlaceholderData: false;
2177
+ status: "error";
2178
+ dataUpdatedAt: number;
2179
+ errorUpdatedAt: number;
2180
+ failureCount: number;
2181
+ failureReason: Error | null;
2182
+ errorUpdateCount: number;
2183
+ isFetched: boolean;
2184
+ isFetchedAfterMount: boolean;
2185
+ isFetching: boolean;
2186
+ isInitialLoading: boolean;
2187
+ isPaused: boolean;
2188
+ isRefetching: boolean;
2189
+ isStale: boolean;
2190
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<OrganizationAccess, Error>>;
2191
+ fetchStatus: _tanstack_react_query.FetchStatus;
2192
+ promise: Promise<OrganizationAccess>;
2193
+ } | {
2194
+ data: OrganizationAccess;
2195
+ error: null;
2196
+ isError: false;
2197
+ isPending: false;
2198
+ isLoading: false;
2199
+ isLoadingError: false;
2200
+ isRefetchError: false;
2201
+ isSuccess: true;
2202
+ isPlaceholderData: false;
2203
+ status: "success";
2204
+ dataUpdatedAt: number;
2205
+ errorUpdatedAt: number;
2206
+ failureCount: number;
2207
+ failureReason: Error | null;
2208
+ errorUpdateCount: number;
2209
+ isFetched: boolean;
2210
+ isFetchedAfterMount: boolean;
2211
+ isFetching: boolean;
2212
+ isInitialLoading: boolean;
2213
+ isPaused: boolean;
2214
+ isRefetching: boolean;
2215
+ isStale: boolean;
2216
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<OrganizationAccess, Error>>;
2217
+ fetchStatus: _tanstack_react_query.FetchStatus;
2218
+ promise: Promise<OrganizationAccess>;
2219
+ } | {
2220
+ data: undefined;
2221
+ error: Error;
2222
+ isError: true;
2223
+ isPending: false;
2224
+ isLoading: false;
2225
+ isLoadingError: true;
2226
+ isRefetchError: false;
2227
+ isSuccess: false;
2228
+ isPlaceholderData: false;
2229
+ status: "error";
2230
+ dataUpdatedAt: number;
2231
+ errorUpdatedAt: number;
2232
+ failureCount: number;
2233
+ failureReason: Error | null;
2234
+ errorUpdateCount: number;
2235
+ isFetched: boolean;
2236
+ isFetchedAfterMount: boolean;
2237
+ isFetching: boolean;
2238
+ isInitialLoading: boolean;
2239
+ isPaused: boolean;
2240
+ isRefetching: boolean;
2241
+ isStale: boolean;
2242
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<OrganizationAccess, Error>>;
2243
+ fetchStatus: _tanstack_react_query.FetchStatus;
2244
+ promise: Promise<OrganizationAccess>;
2245
+ } | {
2246
+ data: undefined;
2247
+ error: null;
2248
+ isError: false;
2249
+ isPending: true;
2250
+ isLoading: true;
2251
+ isLoadingError: false;
2252
+ isRefetchError: false;
2253
+ isSuccess: false;
2254
+ isPlaceholderData: false;
2255
+ status: "pending";
2256
+ dataUpdatedAt: number;
2257
+ errorUpdatedAt: number;
2258
+ failureCount: number;
2259
+ failureReason: Error | null;
2260
+ errorUpdateCount: number;
2261
+ isFetched: boolean;
2262
+ isFetchedAfterMount: boolean;
2263
+ isFetching: boolean;
2264
+ isInitialLoading: boolean;
2265
+ isPaused: boolean;
2266
+ isRefetching: boolean;
2267
+ isStale: boolean;
2268
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<OrganizationAccess, Error>>;
2269
+ fetchStatus: _tanstack_react_query.FetchStatus;
2270
+ promise: Promise<OrganizationAccess>;
2271
+ } | {
2272
+ data: undefined;
2273
+ error: null;
2274
+ isError: false;
2275
+ isPending: true;
2276
+ isLoadingError: false;
2277
+ isRefetchError: false;
2278
+ isSuccess: false;
2279
+ isPlaceholderData: false;
2280
+ status: "pending";
2281
+ dataUpdatedAt: number;
2282
+ errorUpdatedAt: number;
2283
+ failureCount: number;
2284
+ failureReason: Error | null;
2285
+ errorUpdateCount: number;
2286
+ isFetched: boolean;
2287
+ isFetchedAfterMount: boolean;
2288
+ isFetching: boolean;
2289
+ isLoading: boolean;
2290
+ isInitialLoading: boolean;
2291
+ isPaused: boolean;
2292
+ isRefetching: boolean;
2293
+ isStale: boolean;
2294
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<OrganizationAccess, Error>>;
2295
+ fetchStatus: _tanstack_react_query.FetchStatus;
2296
+ promise: Promise<OrganizationAccess>;
2297
+ } | {
2298
+ data: OrganizationAccess;
2299
+ isError: false;
2300
+ error: null;
2301
+ isPending: false;
2302
+ isLoading: false;
2303
+ isLoadingError: false;
2304
+ isRefetchError: false;
2305
+ isSuccess: true;
2306
+ isPlaceholderData: true;
2307
+ status: "success";
2308
+ dataUpdatedAt: number;
2309
+ errorUpdatedAt: number;
2310
+ failureCount: number;
2311
+ failureReason: Error | null;
2312
+ errorUpdateCount: number;
2313
+ isFetched: boolean;
2314
+ isFetchedAfterMount: boolean;
2315
+ isFetching: boolean;
2316
+ isInitialLoading: boolean;
2317
+ isPaused: boolean;
2318
+ isRefetching: boolean;
2319
+ isStale: boolean;
2320
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<OrganizationAccess, Error>>;
2321
+ fetchStatus: _tanstack_react_query.FetchStatus;
2322
+ promise: Promise<OrganizationAccess>;
2323
+ };
2324
+
2325
+ declare const useUpdateStudentVocab: (page: PageActivityWithId | null) => {
2326
+ studentVocabMarkVoiceSuccess: undefined;
2327
+ studentVocabMarkVoiceFail: undefined;
2328
+ } | {
2329
+ studentVocabMarkVoiceSuccess: () => Promise<void>;
2330
+ studentVocabMarkVoiceFail: () => Promise<void>;
2331
+ };
2332
+
2333
+ declare const useBaseOpenAI: ({ onTranscriptSuccess, onTranscriptError, onCompletionSuccess, onCompletionError, aiEnabled, submitAudioResponse, uploadAudioAndGetTranscript, }: {
2334
+ onTranscriptSuccess: (transcript: string) => void;
2335
+ onTranscriptError: ({ type, message }: {
2336
+ type: string;
2337
+ message: string;
2338
+ }) => void;
2339
+ onCompletionSuccess: (completion: any) => void;
2340
+ onCompletionError: ({ type, message }: {
2341
+ type: string;
2342
+ message: string;
2343
+ }) => void;
2344
+ aiEnabled: boolean;
2345
+ submitAudioResponse: (audio: string) => Promise<{
2346
+ url: string;
2347
+ fileName: string;
2348
+ }>;
2349
+ uploadAudioAndGetTranscript: (audio: string, language: string) => Promise<string>;
2350
+ }) => {
2351
+ submitAudioResponse: (audio: string) => Promise<{
2352
+ url: string;
2353
+ fileName: string;
2354
+ }>;
2355
+ uploadAudioAndGetTranscript: (audio: string, language: string) => Promise<string>;
2356
+ getTranscript: (audioUrl: string, language: string) => Promise<string>;
2357
+ getFreeResponseCompletion: (messages: string[], isFreeResponse: boolean, feedbackLanguage: string, gradingStandard?: string) => Promise<any>;
2358
+ getFeedback: ({ cardId, language, writtenResponse, audio, autoGrade, file, }: {
2359
+ cardId: string;
2360
+ language: string;
2361
+ writtenResponse: string | null;
2362
+ audio: string | null;
2363
+ autoGrade: boolean;
2364
+ file: string | null;
2365
+ }) => Promise<{
2366
+ noFeedbackAvailable: boolean;
2367
+ success: boolean;
2368
+ reason: string;
2369
+ accessType: "ai_enabled" | "teacher_preview" | "student_with_teacher_plan" | "none";
2370
+ } | {
2371
+ noFeedbackAvailable: boolean;
2372
+ success: boolean;
2373
+ reason: string;
2374
+ accessType: string;
2375
+ aiSuccess: boolean;
2376
+ }>;
2377
+ };
2378
+
2379
+ interface ActivityFeedbackAccess {
2380
+ canAccessFeedback: boolean;
2381
+ reason?: string;
2382
+ isUnlimited: boolean;
2383
+ accessType: 'ai_enabled' | 'teacher_preview' | 'student_with_teacher_plan' | 'none';
2384
+ }
2385
+ /**
2386
+ * Hook to check feedback permissions for both students and teachers
2387
+ *
2388
+ * Permission Logic:
2389
+ * 1. aiEnabled: true → Allow feedback access always (highest priority)
2390
+ * 2. Teachers on /activity route → Always allowed (ADMIN role)
2391
+ * 3. Students on /activity route → Need teacher with active plan (team/org)
2392
+ *
2393
+ * @param params - Parameters for permission checking
2394
+ * @returns Feedback permissions information
2395
+ */
2396
+ declare const useActivityFeedbackAccess: ({ aiEnabled, isActivityRoute, }: {
2397
+ aiEnabled?: boolean;
2398
+ isActivityRoute?: boolean;
2399
+ }) => {
2400
+ data: ActivityFeedbackAccess;
2401
+ error: Error;
2402
+ isError: true;
2403
+ isPending: false;
2404
+ isLoading: false;
2405
+ isLoadingError: false;
2406
+ isRefetchError: true;
2407
+ isSuccess: false;
2408
+ isPlaceholderData: false;
2409
+ status: "error";
2410
+ dataUpdatedAt: number;
2411
+ errorUpdatedAt: number;
2412
+ failureCount: number;
2413
+ failureReason: Error | null;
2414
+ errorUpdateCount: number;
2415
+ isFetched: boolean;
2416
+ isFetchedAfterMount: boolean;
2417
+ isFetching: boolean;
2418
+ isInitialLoading: boolean;
2419
+ isPaused: boolean;
2420
+ isRefetching: boolean;
2421
+ isStale: boolean;
2422
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<ActivityFeedbackAccess, Error>>;
2423
+ fetchStatus: _tanstack_react_query.FetchStatus;
2424
+ promise: Promise<ActivityFeedbackAccess>;
2425
+ } | {
2426
+ data: ActivityFeedbackAccess;
2427
+ error: null;
2428
+ isError: false;
2429
+ isPending: false;
2430
+ isLoading: false;
2431
+ isLoadingError: false;
2432
+ isRefetchError: false;
2433
+ isSuccess: true;
2434
+ isPlaceholderData: false;
2435
+ status: "success";
2436
+ dataUpdatedAt: number;
2437
+ errorUpdatedAt: number;
2438
+ failureCount: number;
2439
+ failureReason: Error | null;
2440
+ errorUpdateCount: number;
2441
+ isFetched: boolean;
2442
+ isFetchedAfterMount: boolean;
2443
+ isFetching: boolean;
2444
+ isInitialLoading: boolean;
2445
+ isPaused: boolean;
2446
+ isRefetching: boolean;
2447
+ isStale: boolean;
2448
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<ActivityFeedbackAccess, Error>>;
2449
+ fetchStatus: _tanstack_react_query.FetchStatus;
2450
+ promise: Promise<ActivityFeedbackAccess>;
2451
+ } | {
2452
+ data: undefined;
2453
+ error: Error;
2454
+ isError: true;
2455
+ isPending: false;
2456
+ isLoading: false;
2457
+ isLoadingError: true;
2458
+ isRefetchError: false;
2459
+ isSuccess: false;
2460
+ isPlaceholderData: false;
2461
+ status: "error";
2462
+ dataUpdatedAt: number;
2463
+ errorUpdatedAt: number;
2464
+ failureCount: number;
2465
+ failureReason: Error | null;
2466
+ errorUpdateCount: number;
2467
+ isFetched: boolean;
2468
+ isFetchedAfterMount: boolean;
2469
+ isFetching: boolean;
2470
+ isInitialLoading: boolean;
2471
+ isPaused: boolean;
2472
+ isRefetching: boolean;
2473
+ isStale: boolean;
2474
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<ActivityFeedbackAccess, Error>>;
2475
+ fetchStatus: _tanstack_react_query.FetchStatus;
2476
+ promise: Promise<ActivityFeedbackAccess>;
2477
+ } | {
2478
+ data: undefined;
2479
+ error: null;
2480
+ isError: false;
2481
+ isPending: true;
2482
+ isLoading: true;
2483
+ isLoadingError: false;
2484
+ isRefetchError: false;
2485
+ isSuccess: false;
2486
+ isPlaceholderData: false;
2487
+ status: "pending";
2488
+ dataUpdatedAt: number;
2489
+ errorUpdatedAt: number;
2490
+ failureCount: number;
2491
+ failureReason: Error | null;
2492
+ errorUpdateCount: number;
2493
+ isFetched: boolean;
2494
+ isFetchedAfterMount: boolean;
2495
+ isFetching: boolean;
2496
+ isInitialLoading: boolean;
2497
+ isPaused: boolean;
2498
+ isRefetching: boolean;
2499
+ isStale: boolean;
2500
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<ActivityFeedbackAccess, Error>>;
2501
+ fetchStatus: _tanstack_react_query.FetchStatus;
2502
+ promise: Promise<ActivityFeedbackAccess>;
2503
+ } | {
2504
+ data: undefined;
2505
+ error: null;
2506
+ isError: false;
2507
+ isPending: true;
2508
+ isLoadingError: false;
2509
+ isRefetchError: false;
2510
+ isSuccess: false;
2511
+ isPlaceholderData: false;
2512
+ status: "pending";
2513
+ dataUpdatedAt: number;
2514
+ errorUpdatedAt: number;
2515
+ failureCount: number;
2516
+ failureReason: Error | null;
2517
+ errorUpdateCount: number;
2518
+ isFetched: boolean;
2519
+ isFetchedAfterMount: boolean;
2520
+ isFetching: boolean;
2521
+ isLoading: boolean;
2522
+ isInitialLoading: boolean;
2523
+ isPaused: boolean;
2524
+ isRefetching: boolean;
2525
+ isStale: boolean;
2526
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<ActivityFeedbackAccess, Error>>;
2527
+ fetchStatus: _tanstack_react_query.FetchStatus;
2528
+ promise: Promise<ActivityFeedbackAccess>;
2529
+ } | {
2530
+ data: ActivityFeedbackAccess;
2531
+ isError: false;
2532
+ error: null;
2533
+ isPending: false;
2534
+ isLoading: false;
2535
+ isLoadingError: false;
2536
+ isRefetchError: false;
2537
+ isSuccess: true;
2538
+ isPlaceholderData: true;
2539
+ status: "success";
2540
+ dataUpdatedAt: number;
2541
+ errorUpdatedAt: number;
2542
+ failureCount: number;
2543
+ failureReason: Error | null;
2544
+ errorUpdateCount: number;
2545
+ isFetched: boolean;
2546
+ isFetchedAfterMount: boolean;
2547
+ isFetching: boolean;
2548
+ isInitialLoading: boolean;
2549
+ isPaused: boolean;
2550
+ isRefetching: boolean;
2551
+ isStale: boolean;
2552
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<ActivityFeedbackAccess, Error>>;
2553
+ fetchStatus: _tanstack_react_query.FetchStatus;
2554
+ promise: Promise<ActivityFeedbackAccess>;
2555
+ };
2556
+
2557
+ declare const createFsClientNative: ({ db, httpsCallable, logEvent }: FsClientParams) => {
2558
+ assignmentRepo: {
2559
+ getAssignment: (params: {
2560
+ assignmentId: string;
2561
+ currentUserId: string;
2562
+ analyticType?: AssignmentAnalyticsType;
2563
+ studentId?: string;
2564
+ }) => Promise<AssignmentWithId | {
2565
+ scores: any;
2566
+ id: string;
2567
+ isAvailable: boolean;
2568
+ name: string;
2569
+ description: string;
2570
+ scheduledTime?: string | null;
2571
+ dueTime?: {
2572
+ hours: number;
2573
+ minutes: number;
2574
+ nanos: number;
2575
+ };
2576
+ speakableio: boolean;
2577
+ owners: string[];
2578
+ image: {
2579
+ path: string | null;
2580
+ url: string;
2581
+ };
2582
+ dueDate: {
2583
+ day: number;
2584
+ month: number;
2585
+ year: number;
2586
+ };
2587
+ teacherName: string;
2588
+ courseWorkId: string | null;
2589
+ dueDateTimestamp: CustomTimestamp;
2590
+ scheduledTimeTimestamp: number;
2591
+ active: boolean;
2592
+ voice: string | null;
2593
+ setId: string;
2594
+ dateMade: {
2595
+ seconds: number;
2596
+ nanoseconds: number;
2597
+ };
2598
+ maxPoints: number;
2599
+ courseId: string;
2600
+ isAssessment: boolean;
2601
+ ltiDeeplink?: string;
2602
+ content?: string[];
2603
+ weights?: Record<string, number>;
2604
+ language?: string;
2605
+ types?: { [key in ActivityPageType]?: number; };
2606
+ aiEnabled?: boolean;
2607
+ } | null>;
2608
+ attachScoresAssignment: (args_0: {
2609
+ assignments: AssignmentWithId[];
2610
+ analyticType: AssignmentAnalyticsType;
2611
+ studentId?: string;
2612
+ currentUserId: string;
2613
+ }) => Promise<{
2614
+ scores: any;
2615
+ id: string;
2616
+ isAvailable: boolean;
2617
+ name: string;
2618
+ description: string;
2619
+ scheduledTime?: string | null;
2620
+ dueTime?: {
2621
+ hours: number;
2622
+ minutes: number;
2623
+ nanos: number;
2624
+ };
2625
+ speakableio: boolean;
2626
+ owners: string[];
2627
+ image: {
2628
+ path: string | null;
2629
+ url: string;
2630
+ };
2631
+ dueDate: {
2632
+ day: number;
2633
+ month: number;
2634
+ year: number;
2635
+ };
2636
+ teacherName: string;
2637
+ courseWorkId: string | null;
2638
+ dueDateTimestamp: CustomTimestamp;
2639
+ scheduledTimeTimestamp: number;
2640
+ active: boolean;
2641
+ voice: string | null;
2642
+ setId: string;
2643
+ dateMade: {
2644
+ seconds: number;
2645
+ nanoseconds: number;
2646
+ };
2647
+ maxPoints: number;
2648
+ courseId: string;
2649
+ isAssessment: boolean;
2650
+ ltiDeeplink?: string;
2651
+ content?: string[];
2652
+ weights?: Record<string, number>;
2653
+ language?: string;
2654
+ types?: { [key in ActivityPageType]?: number; };
2655
+ aiEnabled?: boolean;
2656
+ }[]>;
2657
+ getAssignmentScores: (args_0: {
2658
+ assignmentId: string;
2659
+ currentUserId: string;
2660
+ analyticType?: AssignmentAnalyticsType;
2661
+ studentId?: string;
2662
+ }) => Promise<{
2663
+ scores: unknown;
2664
+ id: string;
2665
+ } | undefined>;
2666
+ getAllAssignments: () => Promise<(AssignmentWithId & {
2667
+ id: string;
2668
+ })[]>;
2669
+ };
2670
+ cardRepo: {
2671
+ createCard: (args_0: {
2672
+ data: Partial<PageActivity>;
2673
+ }) => Promise<{
2674
+ id: string;
2675
+ } & Partial<PageActivity>>;
2676
+ createCards: (args_0: {
2677
+ cards: PageActivity[];
2678
+ }) => Promise<{
2679
+ id: string;
2680
+ owners: string[];
2681
+ checked?: boolean;
2682
+ completed?: boolean;
2683
+ media_area_id?: string | null;
2684
+ media_area_layout?: "left" | "right" | null;
2685
+ score?: number;
2686
+ verificationStatus?: VerificationCardStatus;
2687
+ native_text?: string;
2688
+ repeat?: number;
2689
+ language?: string | null;
2690
+ image?: {
2691
+ path?: string | null;
2692
+ url?: string;
2693
+ };
2694
+ audio?: {
2695
+ path?: string | null;
2696
+ url?: string;
2697
+ } | null;
2698
+ notes?: string;
2699
+ difficulty?: string;
2700
+ default_language?: string;
2701
+ target_text?: string;
2702
+ type: ActivityPageType;
2703
+ grading_criteria?: string;
2704
+ scoring_type?: string;
2705
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
2706
+ feedback_types?: string[];
2707
+ rubricId?: string;
2708
+ prompt?: string;
2709
+ title?: string;
2710
+ passing_score?: number;
2711
+ maxCharacters?: number;
2712
+ answer?: string[];
2713
+ choices?: {
2714
+ value: string;
2715
+ option: string;
2716
+ }[];
2717
+ MCQType?: string;
2718
+ multipleAttemptsAllowed?: boolean;
2719
+ allowRetries?: boolean;
2720
+ question?: string;
2721
+ respondTime?: number;
2722
+ hidePrompt?: boolean;
2723
+ videoUrl?: string;
2724
+ link?: string;
2725
+ text?: string;
2726
+ isListenAloud?: boolean;
2727
+ embedCode?: string;
2728
+ attempt?: number;
2729
+ correct?: number;
2730
+ autoGrade?: boolean;
2731
+ points?: number;
2732
+ shuffle?: boolean;
2733
+ translation?: string;
2734
+ includeAIContext?: boolean;
2735
+ media_area_context_ref?: string | null;
2736
+ standardId?: string;
2737
+ target_proficiency_level?: string;
2738
+ allowTTS?: boolean;
2739
+ }[]>;
2740
+ getCard: (params: {
2741
+ cardId: string;
2742
+ }) => Promise<PageActivityWithId | null>;
2743
+ };
2744
+ };
2745
+
2746
+ export { ActivityPageType, type Assignment, type AssignmentWithId, BASE_MULTIPLE_CHOICE_FIELD_VALUES, BASE_REPEAT_FIELD_VALUES, BASE_RESPOND_FIELD_VALUES, type CreditContract, FeedbackTypesCard, FsCtx, type InstitutionSubscription, LENIENCY_OPTIONS, LeniencyCard, MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES, type Organization, type OrganizationAccess, type PageActivity, type PageActivityWithId, type PageScore, REPEAT_PAGE_ACTIVITY_TYPES, RESPOND_AUDIO_PAGE_ACTIVITY_TYPES, RESPOND_PAGE_ACTIVITY_TYPES, RESPOND_WRITE_PAGE_ACTIVITY_TYPES, type RefsCardsFiresotre, type RefsSetsFirestore, SPEAKABLE_NOTIFICATIONS, STUDENT_LEVELS_OPTIONS, type Score, type ScoreWithId, type Set, type SetWithId, type SpeakableNotificationType, SpeakableNotificationTypes, SpeakableProvider, VerificationCardStatus, assignmentQueryKeys, cardsQueryKeys, checkIsMCPage, checkIsMediaPage, checkIsRepeatPage, checkIsRespondAudioPage, checkIsRespondPage, checkIsRespondWrittenPage, checkIsShortAnswerPage, checkTypePageActivity, cleanString, createAssignmentRepo, createCardRepo, createFsClientNative as createFsClient, createSetRepo, creditQueryKeys, debounce, getCardFromCache, getPagePrompt, getPhraseLength, getRespondCardTool, getSetFromCache, getWordHash, purify, refsCardsFiresotre, refsSetsFirestore, scoreQueryKeys, setsQueryKeys, updateCardInCache, updateSetInCache, useActivity, useActivityFeedbackAccess, useAssignment, useBaseOpenAI, useCards, useClearScore, useCreateCard, useCreateCards, useCreateNotification, useGetCard, useOrganizationAccess, useScore, useSet, useSpeakableApi, useSubmitAssignmentScore, useSubmitPracticeScore, useUpdateCardScore, useUpdateScore, useUpdateStudentVocab, useUserCredits };