@speakableio/core 0.1.99 → 0.1.101

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