@speakableio/core 0.1.105 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/analytics-Bj2i88Zk.d.ts +89 -0
  2. package/dist/{assignment.model-DLMWAp0Y.d.ts → assignment.model-BRS4h8gX.d.ts} +1 -1
  3. package/dist/{assignment.model-Bcbxx8oI.d.mts → assignment.model-Bc61gBHl.d.ts} +5 -2
  4. package/dist/{assignment.model-Lu21tZCh.d.mts → assignment.model-Bm9gE2YK.d.ts} +2 -2
  5. package/dist/const.d.ts +3 -73
  6. package/dist/everything.d.ts +1348 -0
  7. package/dist/everything.js +3509 -0
  8. package/dist/everything.js.map +1 -0
  9. package/dist/hooks.d.ts +621 -4
  10. package/dist/hooks.js +1167 -39
  11. package/dist/hooks.js.map +1 -1
  12. package/dist/index.native.d.mts +2272 -27
  13. package/dist/index.native.d.ts +2272 -27
  14. package/dist/index.native.js +2915 -98
  15. package/dist/index.native.js.map +1 -1
  16. package/dist/index.native.mjs +2937 -120
  17. package/dist/index.native.mjs.map +1 -1
  18. package/dist/index.web-DNYJV_41.d.ts +469 -0
  19. package/dist/index.web.d.mts +2437 -6
  20. package/dist/index.web.d.ts +68 -2
  21. package/dist/index.web.js +2937 -120
  22. package/dist/index.web.js.map +1 -1
  23. package/dist/models.d.ts +2 -2
  24. package/dist/repos.d.ts +1 -1
  25. package/dist/speakable-plans-BjWWEWrQ.d.ts +72 -0
  26. package/dist/{const.d.mts → speakable-plans-DR1cQ6IK.d.ts} +19 -258
  27. package/dist/speakable-plans-Dq9nRefI.d.ts +72 -0
  28. package/dist/utils.d.ts +84 -2
  29. package/dist/utils.js +307 -1
  30. package/dist/utils.js.map +1 -1
  31. package/dist/web.constants-qmx4rGyO.d.ts +26 -0
  32. package/package.json +6 -62
  33. package/dist/analytics.cjs +0 -376
  34. package/dist/analytics.cjs.map +0 -1
  35. package/dist/assignment.constants-BIKM6fYi.d.mts +0 -32
  36. package/dist/card.constants-DhKFipX3.d.mts +0 -54
  37. package/dist/const.cjs +0 -526
  38. package/dist/const.cjs.map +0 -1
  39. package/dist/hooks.cjs +0 -1604
  40. package/dist/hooks.cjs.map +0 -1
  41. package/dist/hooks.d.mts +0 -294
  42. package/dist/index.web.cjs +0 -517
  43. package/dist/index.web.cjs.map +0 -1
  44. package/dist/models.cjs +0 -75
  45. package/dist/models.cjs.map +0 -1
  46. package/dist/models.d.mts +0 -56
  47. package/dist/notification.constants-Da4-_0kX.d.mts +0 -21
  48. package/dist/notification.constants-Da4-_0kX.d.ts +0 -21
  49. package/dist/repos.cjs +0 -486
  50. package/dist/repos.cjs.map +0 -1
  51. package/dist/repos.d.mts +0 -209
  52. package/dist/utils.cjs +0 -373
  53. package/dist/utils.cjs.map +0 -1
  54. package/dist/utils.d.mts +0 -39
  55. /package/dist/{notification.constants-B72fb734.d.mts → notification.constants-B72fb734.d.ts} +0 -0
@@ -0,0 +1,1348 @@
1
+ export { A as ANALYTICS_EVENT_TYPES, W as WEB_BASE_URL } from './web.constants-qmx4rGyO.js';
2
+ export { a as AI_ASSISTANT_PLANS, c as ANALYTICS_PLANS, b as ASSIGNMENT_SETTINGS_PLANS, A as AUTO_GRADING_PLANS, C as COMMENTS_PLANS, D as DISCOVER_PLANS, F as FEEDBACK_PLANS, d as FREE_PLAN, I as INTEGRATIONS_PLANS, M as MEDIA_AREA_PLANS, O as ORGANIZATION_PLAN, e as SCHOOL_STARTER, S as SPACES_PLANS, g as SpeakablePermissionsMap, h as SpeakablePlanHierarchy, f as SpeakablePlanTypes, T as TEACHER_PRO_PLAN } from './speakable-plans-Dq9nRefI.js';
3
+ import { A as AssignmentWithId, C as CustomTimestamp, a as ActivityPageType, P as PageScore, S as Score, b as ScoreWithId, c as PageActivity, d as PageActivityWithId, F as FirestoreHelpers, e as CallableFunction } from './assignment.model-Bc61gBHl.js';
4
+ export { f as Assignment, j as FirebaseInstance, k as FirestoreDB, M as MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES, g as REPEAT_PAGE_ACTIVITY_TYPES, i as RESPOND_AUDIO_PAGE_ACTIVITY_TYPES, R as RESPOND_PAGE_ACTIVITY_TYPES, h as RESPOND_WRITE_PAGE_ACTIVITY_TYPES } from './assignment.model-Bc61gBHl.js';
5
+ import { SetWithId } from './models.js';
6
+ export { Set } from './models.js';
7
+ import { U as User, F as FsClientParams } from './index.web-DNYJV_41.js';
8
+ export { a as FsCtx, P as Permissions, S as SpeakableProvider, c as createFsClient, u as useSpeakableApi } from './index.web-DNYJV_41.js';
9
+ export { ActivityFeedbackAccess, InstitutionSubscription, Organization, OrganizationAccess, StudentTeacherPlanResult, activityFeedbackAccessQueryKeys, assignmentQueryKeys, cardsQueryKeys, getCardFromCache, getSetFromCache, scoreQueryKeys, setsQueryKeys, updateCardInCache, updateSetInCache, useActivity, useActivityFeedbackAccess, useAssignment, useBaseOpenAI, useCards, useClearScore, useCreateCard, useCreateCards, useCreateNotification, useGetCard, useGoogleClassroom, useOrganizationAccess, useScore, useSet, useSubmitAssignmentScore, useSubmitPracticeScore, useUpdateCardScore, useUpdateScore, useUpdateStudentVocab, useUserPlan } from './hooks.js';
10
+ import * as _tanstack_react_query from '@tanstack/react-query';
11
+ export { checkAssignmentAvailability, checkTypePageActivity, cleanString, debounce, defaultScore, getLabelPage, getPagePrompt, getPhraseLength, getRespondCardTool, getTotalCompletedCards, getWordHash, purify } from './utils.js';
12
+ export { G as GradingStandard, a as addGradingStandardLog, e as logCreateAssignment, r as logFreePlanRespond, s as logFreePlanWrittenResponse, l as logGradingStandardLog, v as logMultipleChoiceError, u as logMultipleChoiceFail, t as logMultipleChoiceSuccess, c as logOpenActivityPreview, b as logOpenAssignment, h as logRepeatFail, g as logRepeatSuccess, m as logRespondError, j as logRespondFail, k as logRespondSubmitted, i as logRespondSuccess, f as logStartAssignment, d as logSubmitAssignment, q as logWrittenResponseError, o as logWrittenResponseFail, p as logWrittenResponseSubmitted, n as logWrittenResponseSuccess } from './analytics-Bj2i88Zk.js';
13
+ import { A as AssignmentAnalyticsType } from './assignment.constants-BIKM6fYi.js';
14
+ import { V as VerificationCardStatus } from './card.constants-DhKFipX3.js';
15
+ import { a as SpeakableNotificationType } from './notification.constants-B72fb734.js';
16
+ export { createAssignmentRepo, createCardRepo, createSetRepo } from './repos.js';
17
+ import * as _firebase_firestore from '@firebase/firestore';
18
+ import { Firestore, DocumentData, QueryConstraint, WithFieldValue, SetOptions } from 'firebase/firestore';
19
+ import '@react-native-firebase/firestore';
20
+ import 'react/jsx-runtime';
21
+ import 'react';
22
+
23
+ declare function useActivityTracker({ userId }: {
24
+ userId: string;
25
+ }): {
26
+ trackActivity: ({ activityName, activityType, id, language, }: {
27
+ activityName: string;
28
+ activityType: "assignment" | "assessment" | "set";
29
+ id?: string;
30
+ language?: string;
31
+ }) => Promise<void>;
32
+ };
33
+
34
+ interface CreditContract {
35
+ allocationSource: string;
36
+ createdAt: string;
37
+ creditsAllocatedThisPeriod: number;
38
+ effectivePlanId: string;
39
+ email: string;
40
+ isUnlimited: boolean;
41
+ lastUpdatedAt: string;
42
+ ownerType: string;
43
+ periodStart: string;
44
+ periodEnd: string;
45
+ planTermEndTimestamp: string | null;
46
+ sourceDetails: Record<string, unknown>;
47
+ creditsAvailable?: number;
48
+ topOffCreditsAvailable?: number;
49
+ }
50
+ declare const creditQueryKeys: {
51
+ userCredits: (uid: string) => readonly ["userCredits", string];
52
+ };
53
+ declare const useUserCredits: () => {
54
+ data: {
55
+ id: string;
56
+ userId: string;
57
+ email: string;
58
+ effectivePlanId: string;
59
+ status: string;
60
+ isUnlimited: boolean;
61
+ creditsAvailable: number;
62
+ creditsAllocatedThisPeriod: number;
63
+ topOffCreditsAvailable: number;
64
+ topOffCreditsTotal: number;
65
+ allocationSource: string;
66
+ sourceDetails: {};
67
+ periodStart: null;
68
+ periodEnd: null;
69
+ planTermEndTimestamp: null;
70
+ ownerType: string;
71
+ createdAt: string;
72
+ lastUpdatedAt: string;
73
+ } | {
74
+ totalCreditsAvailable: number;
75
+ allocationSource: string;
76
+ createdAt: string;
77
+ creditsAllocatedThisPeriod: number;
78
+ effectivePlanId: string;
79
+ email: string;
80
+ isUnlimited: boolean;
81
+ lastUpdatedAt: string;
82
+ ownerType: string;
83
+ periodStart: string;
84
+ periodEnd: string;
85
+ planTermEndTimestamp: string | null;
86
+ sourceDetails: Record<string, unknown>;
87
+ creditsAvailable?: number;
88
+ topOffCreditsAvailable?: number;
89
+ id: string;
90
+ userId?: undefined;
91
+ status?: undefined;
92
+ topOffCreditsTotal?: undefined;
93
+ };
94
+ error: Error;
95
+ isError: true;
96
+ isPending: false;
97
+ isLoading: false;
98
+ isLoadingError: false;
99
+ isRefetchError: true;
100
+ isSuccess: false;
101
+ isPlaceholderData: false;
102
+ status: "error";
103
+ dataUpdatedAt: number;
104
+ errorUpdatedAt: number;
105
+ failureCount: number;
106
+ failureReason: Error | null;
107
+ errorUpdateCount: number;
108
+ isFetched: boolean;
109
+ isFetchedAfterMount: boolean;
110
+ isFetching: boolean;
111
+ isInitialLoading: boolean;
112
+ isPaused: boolean;
113
+ isRefetching: boolean;
114
+ isStale: boolean;
115
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
116
+ id: string;
117
+ userId: string;
118
+ email: string;
119
+ effectivePlanId: string;
120
+ status: string;
121
+ isUnlimited: boolean;
122
+ creditsAvailable: number;
123
+ creditsAllocatedThisPeriod: number;
124
+ topOffCreditsAvailable: number;
125
+ topOffCreditsTotal: number;
126
+ allocationSource: string;
127
+ sourceDetails: {};
128
+ periodStart: null;
129
+ periodEnd: null;
130
+ planTermEndTimestamp: null;
131
+ ownerType: string;
132
+ createdAt: string;
133
+ lastUpdatedAt: string;
134
+ } | {
135
+ totalCreditsAvailable: number;
136
+ allocationSource: string;
137
+ createdAt: string;
138
+ creditsAllocatedThisPeriod: number;
139
+ effectivePlanId: string;
140
+ email: string;
141
+ isUnlimited: boolean;
142
+ lastUpdatedAt: string;
143
+ ownerType: string;
144
+ periodStart: string;
145
+ periodEnd: string;
146
+ planTermEndTimestamp: string | null;
147
+ sourceDetails: Record<string, unknown>;
148
+ creditsAvailable?: number;
149
+ topOffCreditsAvailable?: number;
150
+ id: string;
151
+ userId?: undefined;
152
+ status?: undefined;
153
+ topOffCreditsTotal?: undefined;
154
+ }, Error>>;
155
+ fetchStatus: _tanstack_react_query.FetchStatus;
156
+ promise: Promise<{
157
+ id: string;
158
+ userId: string;
159
+ email: string;
160
+ effectivePlanId: string;
161
+ status: string;
162
+ isUnlimited: boolean;
163
+ creditsAvailable: number;
164
+ creditsAllocatedThisPeriod: number;
165
+ topOffCreditsAvailable: number;
166
+ topOffCreditsTotal: number;
167
+ allocationSource: string;
168
+ sourceDetails: {};
169
+ periodStart: null;
170
+ periodEnd: null;
171
+ planTermEndTimestamp: null;
172
+ ownerType: string;
173
+ createdAt: string;
174
+ lastUpdatedAt: string;
175
+ } | {
176
+ totalCreditsAvailable: number;
177
+ allocationSource: string;
178
+ createdAt: string;
179
+ creditsAllocatedThisPeriod: number;
180
+ effectivePlanId: string;
181
+ email: string;
182
+ isUnlimited: boolean;
183
+ lastUpdatedAt: string;
184
+ ownerType: string;
185
+ periodStart: string;
186
+ periodEnd: string;
187
+ planTermEndTimestamp: string | null;
188
+ sourceDetails: Record<string, unknown>;
189
+ creditsAvailable?: number;
190
+ topOffCreditsAvailable?: number;
191
+ id: string;
192
+ userId?: undefined;
193
+ status?: undefined;
194
+ topOffCreditsTotal?: undefined;
195
+ }>;
196
+ } | {
197
+ data: {
198
+ id: string;
199
+ userId: string;
200
+ email: string;
201
+ effectivePlanId: string;
202
+ status: string;
203
+ isUnlimited: boolean;
204
+ creditsAvailable: number;
205
+ creditsAllocatedThisPeriod: number;
206
+ topOffCreditsAvailable: number;
207
+ topOffCreditsTotal: number;
208
+ allocationSource: string;
209
+ sourceDetails: {};
210
+ periodStart: null;
211
+ periodEnd: null;
212
+ planTermEndTimestamp: null;
213
+ ownerType: string;
214
+ createdAt: string;
215
+ lastUpdatedAt: string;
216
+ } | {
217
+ totalCreditsAvailable: number;
218
+ allocationSource: string;
219
+ createdAt: string;
220
+ creditsAllocatedThisPeriod: number;
221
+ effectivePlanId: string;
222
+ email: string;
223
+ isUnlimited: boolean;
224
+ lastUpdatedAt: string;
225
+ ownerType: string;
226
+ periodStart: string;
227
+ periodEnd: string;
228
+ planTermEndTimestamp: string | null;
229
+ sourceDetails: Record<string, unknown>;
230
+ creditsAvailable?: number;
231
+ topOffCreditsAvailable?: number;
232
+ id: string;
233
+ userId?: undefined;
234
+ status?: undefined;
235
+ topOffCreditsTotal?: undefined;
236
+ };
237
+ error: null;
238
+ isError: false;
239
+ isPending: false;
240
+ isLoading: false;
241
+ isLoadingError: false;
242
+ isRefetchError: false;
243
+ isSuccess: true;
244
+ isPlaceholderData: false;
245
+ status: "success";
246
+ dataUpdatedAt: number;
247
+ errorUpdatedAt: number;
248
+ failureCount: number;
249
+ failureReason: Error | null;
250
+ errorUpdateCount: number;
251
+ isFetched: boolean;
252
+ isFetchedAfterMount: boolean;
253
+ isFetching: boolean;
254
+ isInitialLoading: boolean;
255
+ isPaused: boolean;
256
+ isRefetching: boolean;
257
+ isStale: boolean;
258
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
259
+ id: string;
260
+ userId: string;
261
+ email: string;
262
+ effectivePlanId: string;
263
+ status: string;
264
+ isUnlimited: boolean;
265
+ creditsAvailable: number;
266
+ creditsAllocatedThisPeriod: number;
267
+ topOffCreditsAvailable: number;
268
+ topOffCreditsTotal: number;
269
+ allocationSource: string;
270
+ sourceDetails: {};
271
+ periodStart: null;
272
+ periodEnd: null;
273
+ planTermEndTimestamp: null;
274
+ ownerType: string;
275
+ createdAt: string;
276
+ lastUpdatedAt: string;
277
+ } | {
278
+ totalCreditsAvailable: number;
279
+ allocationSource: string;
280
+ createdAt: string;
281
+ creditsAllocatedThisPeriod: number;
282
+ effectivePlanId: string;
283
+ email: string;
284
+ isUnlimited: boolean;
285
+ lastUpdatedAt: string;
286
+ ownerType: string;
287
+ periodStart: string;
288
+ periodEnd: string;
289
+ planTermEndTimestamp: string | null;
290
+ sourceDetails: Record<string, unknown>;
291
+ creditsAvailable?: number;
292
+ topOffCreditsAvailable?: number;
293
+ id: string;
294
+ userId?: undefined;
295
+ status?: undefined;
296
+ topOffCreditsTotal?: undefined;
297
+ }, Error>>;
298
+ fetchStatus: _tanstack_react_query.FetchStatus;
299
+ promise: Promise<{
300
+ id: string;
301
+ userId: string;
302
+ email: string;
303
+ effectivePlanId: string;
304
+ status: string;
305
+ isUnlimited: boolean;
306
+ creditsAvailable: number;
307
+ creditsAllocatedThisPeriod: number;
308
+ topOffCreditsAvailable: number;
309
+ topOffCreditsTotal: number;
310
+ allocationSource: string;
311
+ sourceDetails: {};
312
+ periodStart: null;
313
+ periodEnd: null;
314
+ planTermEndTimestamp: null;
315
+ ownerType: string;
316
+ createdAt: string;
317
+ lastUpdatedAt: string;
318
+ } | {
319
+ totalCreditsAvailable: number;
320
+ allocationSource: string;
321
+ createdAt: string;
322
+ creditsAllocatedThisPeriod: number;
323
+ effectivePlanId: string;
324
+ email: string;
325
+ isUnlimited: boolean;
326
+ lastUpdatedAt: string;
327
+ ownerType: string;
328
+ periodStart: string;
329
+ periodEnd: string;
330
+ planTermEndTimestamp: string | null;
331
+ sourceDetails: Record<string, unknown>;
332
+ creditsAvailable?: number;
333
+ topOffCreditsAvailable?: number;
334
+ id: string;
335
+ userId?: undefined;
336
+ status?: undefined;
337
+ topOffCreditsTotal?: undefined;
338
+ }>;
339
+ } | {
340
+ data: undefined;
341
+ error: Error;
342
+ isError: true;
343
+ isPending: false;
344
+ isLoading: false;
345
+ isLoadingError: true;
346
+ isRefetchError: false;
347
+ isSuccess: false;
348
+ isPlaceholderData: false;
349
+ status: "error";
350
+ dataUpdatedAt: number;
351
+ errorUpdatedAt: number;
352
+ failureCount: number;
353
+ failureReason: Error | null;
354
+ errorUpdateCount: number;
355
+ isFetched: boolean;
356
+ isFetchedAfterMount: boolean;
357
+ isFetching: boolean;
358
+ isInitialLoading: boolean;
359
+ isPaused: boolean;
360
+ isRefetching: boolean;
361
+ isStale: boolean;
362
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
363
+ id: string;
364
+ userId: string;
365
+ email: string;
366
+ effectivePlanId: string;
367
+ status: string;
368
+ isUnlimited: boolean;
369
+ creditsAvailable: number;
370
+ creditsAllocatedThisPeriod: number;
371
+ topOffCreditsAvailable: number;
372
+ topOffCreditsTotal: number;
373
+ allocationSource: string;
374
+ sourceDetails: {};
375
+ periodStart: null;
376
+ periodEnd: null;
377
+ planTermEndTimestamp: null;
378
+ ownerType: string;
379
+ createdAt: string;
380
+ lastUpdatedAt: string;
381
+ } | {
382
+ totalCreditsAvailable: number;
383
+ allocationSource: string;
384
+ createdAt: string;
385
+ creditsAllocatedThisPeriod: number;
386
+ effectivePlanId: string;
387
+ email: string;
388
+ isUnlimited: boolean;
389
+ lastUpdatedAt: string;
390
+ ownerType: string;
391
+ periodStart: string;
392
+ periodEnd: string;
393
+ planTermEndTimestamp: string | null;
394
+ sourceDetails: Record<string, unknown>;
395
+ creditsAvailable?: number;
396
+ topOffCreditsAvailable?: number;
397
+ id: string;
398
+ userId?: undefined;
399
+ status?: undefined;
400
+ topOffCreditsTotal?: undefined;
401
+ }, Error>>;
402
+ fetchStatus: _tanstack_react_query.FetchStatus;
403
+ promise: Promise<{
404
+ id: string;
405
+ userId: string;
406
+ email: string;
407
+ effectivePlanId: string;
408
+ status: string;
409
+ isUnlimited: boolean;
410
+ creditsAvailable: number;
411
+ creditsAllocatedThisPeriod: number;
412
+ topOffCreditsAvailable: number;
413
+ topOffCreditsTotal: number;
414
+ allocationSource: string;
415
+ sourceDetails: {};
416
+ periodStart: null;
417
+ periodEnd: null;
418
+ planTermEndTimestamp: null;
419
+ ownerType: string;
420
+ createdAt: string;
421
+ lastUpdatedAt: string;
422
+ } | {
423
+ totalCreditsAvailable: number;
424
+ allocationSource: string;
425
+ createdAt: string;
426
+ creditsAllocatedThisPeriod: number;
427
+ effectivePlanId: string;
428
+ email: string;
429
+ isUnlimited: boolean;
430
+ lastUpdatedAt: string;
431
+ ownerType: string;
432
+ periodStart: string;
433
+ periodEnd: string;
434
+ planTermEndTimestamp: string | null;
435
+ sourceDetails: Record<string, unknown>;
436
+ creditsAvailable?: number;
437
+ topOffCreditsAvailable?: number;
438
+ id: string;
439
+ userId?: undefined;
440
+ status?: undefined;
441
+ topOffCreditsTotal?: undefined;
442
+ }>;
443
+ } | {
444
+ data: undefined;
445
+ error: null;
446
+ isError: false;
447
+ isPending: true;
448
+ isLoading: true;
449
+ isLoadingError: false;
450
+ isRefetchError: false;
451
+ isSuccess: false;
452
+ isPlaceholderData: false;
453
+ status: "pending";
454
+ dataUpdatedAt: number;
455
+ errorUpdatedAt: number;
456
+ failureCount: number;
457
+ failureReason: Error | null;
458
+ errorUpdateCount: number;
459
+ isFetched: boolean;
460
+ isFetchedAfterMount: boolean;
461
+ isFetching: boolean;
462
+ isInitialLoading: boolean;
463
+ isPaused: boolean;
464
+ isRefetching: boolean;
465
+ isStale: boolean;
466
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
467
+ id: string;
468
+ userId: string;
469
+ email: string;
470
+ effectivePlanId: string;
471
+ status: string;
472
+ isUnlimited: boolean;
473
+ creditsAvailable: number;
474
+ creditsAllocatedThisPeriod: number;
475
+ topOffCreditsAvailable: number;
476
+ topOffCreditsTotal: number;
477
+ allocationSource: string;
478
+ sourceDetails: {};
479
+ periodStart: null;
480
+ periodEnd: null;
481
+ planTermEndTimestamp: null;
482
+ ownerType: string;
483
+ createdAt: string;
484
+ lastUpdatedAt: string;
485
+ } | {
486
+ totalCreditsAvailable: number;
487
+ allocationSource: string;
488
+ createdAt: string;
489
+ creditsAllocatedThisPeriod: number;
490
+ effectivePlanId: string;
491
+ email: string;
492
+ isUnlimited: boolean;
493
+ lastUpdatedAt: string;
494
+ ownerType: string;
495
+ periodStart: string;
496
+ periodEnd: string;
497
+ planTermEndTimestamp: string | null;
498
+ sourceDetails: Record<string, unknown>;
499
+ creditsAvailable?: number;
500
+ topOffCreditsAvailable?: number;
501
+ id: string;
502
+ userId?: undefined;
503
+ status?: undefined;
504
+ topOffCreditsTotal?: undefined;
505
+ }, Error>>;
506
+ fetchStatus: _tanstack_react_query.FetchStatus;
507
+ promise: Promise<{
508
+ id: string;
509
+ userId: string;
510
+ email: string;
511
+ effectivePlanId: string;
512
+ status: string;
513
+ isUnlimited: boolean;
514
+ creditsAvailable: number;
515
+ creditsAllocatedThisPeriod: number;
516
+ topOffCreditsAvailable: number;
517
+ topOffCreditsTotal: number;
518
+ allocationSource: string;
519
+ sourceDetails: {};
520
+ periodStart: null;
521
+ periodEnd: null;
522
+ planTermEndTimestamp: null;
523
+ ownerType: string;
524
+ createdAt: string;
525
+ lastUpdatedAt: string;
526
+ } | {
527
+ totalCreditsAvailable: number;
528
+ allocationSource: string;
529
+ createdAt: string;
530
+ creditsAllocatedThisPeriod: number;
531
+ effectivePlanId: string;
532
+ email: string;
533
+ isUnlimited: boolean;
534
+ lastUpdatedAt: string;
535
+ ownerType: string;
536
+ periodStart: string;
537
+ periodEnd: string;
538
+ planTermEndTimestamp: string | null;
539
+ sourceDetails: Record<string, unknown>;
540
+ creditsAvailable?: number;
541
+ topOffCreditsAvailable?: number;
542
+ id: string;
543
+ userId?: undefined;
544
+ status?: undefined;
545
+ topOffCreditsTotal?: undefined;
546
+ }>;
547
+ } | {
548
+ data: undefined;
549
+ error: null;
550
+ isError: false;
551
+ isPending: true;
552
+ isLoadingError: false;
553
+ isRefetchError: false;
554
+ isSuccess: false;
555
+ isPlaceholderData: false;
556
+ status: "pending";
557
+ dataUpdatedAt: number;
558
+ errorUpdatedAt: number;
559
+ failureCount: number;
560
+ failureReason: Error | null;
561
+ errorUpdateCount: number;
562
+ isFetched: boolean;
563
+ isFetchedAfterMount: boolean;
564
+ isFetching: boolean;
565
+ isLoading: boolean;
566
+ isInitialLoading: boolean;
567
+ isPaused: boolean;
568
+ isRefetching: boolean;
569
+ isStale: boolean;
570
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
571
+ id: string;
572
+ userId: string;
573
+ email: string;
574
+ effectivePlanId: string;
575
+ status: string;
576
+ isUnlimited: boolean;
577
+ creditsAvailable: number;
578
+ creditsAllocatedThisPeriod: number;
579
+ topOffCreditsAvailable: number;
580
+ topOffCreditsTotal: number;
581
+ allocationSource: string;
582
+ sourceDetails: {};
583
+ periodStart: null;
584
+ periodEnd: null;
585
+ planTermEndTimestamp: null;
586
+ ownerType: string;
587
+ createdAt: string;
588
+ lastUpdatedAt: string;
589
+ } | {
590
+ totalCreditsAvailable: number;
591
+ allocationSource: string;
592
+ createdAt: string;
593
+ creditsAllocatedThisPeriod: number;
594
+ effectivePlanId: string;
595
+ email: string;
596
+ isUnlimited: boolean;
597
+ lastUpdatedAt: string;
598
+ ownerType: string;
599
+ periodStart: string;
600
+ periodEnd: string;
601
+ planTermEndTimestamp: string | null;
602
+ sourceDetails: Record<string, unknown>;
603
+ creditsAvailable?: number;
604
+ topOffCreditsAvailable?: number;
605
+ id: string;
606
+ userId?: undefined;
607
+ status?: undefined;
608
+ topOffCreditsTotal?: undefined;
609
+ }, Error>>;
610
+ fetchStatus: _tanstack_react_query.FetchStatus;
611
+ promise: Promise<{
612
+ id: string;
613
+ userId: string;
614
+ email: string;
615
+ effectivePlanId: string;
616
+ status: string;
617
+ isUnlimited: boolean;
618
+ creditsAvailable: number;
619
+ creditsAllocatedThisPeriod: number;
620
+ topOffCreditsAvailable: number;
621
+ topOffCreditsTotal: number;
622
+ allocationSource: string;
623
+ sourceDetails: {};
624
+ periodStart: null;
625
+ periodEnd: null;
626
+ planTermEndTimestamp: null;
627
+ ownerType: string;
628
+ createdAt: string;
629
+ lastUpdatedAt: string;
630
+ } | {
631
+ totalCreditsAvailable: number;
632
+ allocationSource: string;
633
+ createdAt: string;
634
+ creditsAllocatedThisPeriod: number;
635
+ effectivePlanId: string;
636
+ email: string;
637
+ isUnlimited: boolean;
638
+ lastUpdatedAt: string;
639
+ ownerType: string;
640
+ periodStart: string;
641
+ periodEnd: string;
642
+ planTermEndTimestamp: string | null;
643
+ sourceDetails: Record<string, unknown>;
644
+ creditsAvailable?: number;
645
+ topOffCreditsAvailable?: number;
646
+ id: string;
647
+ userId?: undefined;
648
+ status?: undefined;
649
+ topOffCreditsTotal?: undefined;
650
+ }>;
651
+ } | {
652
+ data: {
653
+ id: string;
654
+ userId: string;
655
+ email: string;
656
+ effectivePlanId: string;
657
+ status: string;
658
+ isUnlimited: boolean;
659
+ creditsAvailable: number;
660
+ creditsAllocatedThisPeriod: number;
661
+ topOffCreditsAvailable: number;
662
+ topOffCreditsTotal: number;
663
+ allocationSource: string;
664
+ sourceDetails: {};
665
+ periodStart: null;
666
+ periodEnd: null;
667
+ planTermEndTimestamp: null;
668
+ ownerType: string;
669
+ createdAt: string;
670
+ lastUpdatedAt: string;
671
+ } | {
672
+ totalCreditsAvailable: number;
673
+ allocationSource: string;
674
+ createdAt: string;
675
+ creditsAllocatedThisPeriod: number;
676
+ effectivePlanId: string;
677
+ email: string;
678
+ isUnlimited: boolean;
679
+ lastUpdatedAt: string;
680
+ ownerType: string;
681
+ periodStart: string;
682
+ periodEnd: string;
683
+ planTermEndTimestamp: string | null;
684
+ sourceDetails: Record<string, unknown>;
685
+ creditsAvailable?: number;
686
+ topOffCreditsAvailable?: number;
687
+ id: string;
688
+ userId?: undefined;
689
+ status?: undefined;
690
+ topOffCreditsTotal?: undefined;
691
+ };
692
+ isError: false;
693
+ error: null;
694
+ isPending: false;
695
+ isLoading: false;
696
+ isLoadingError: false;
697
+ isRefetchError: false;
698
+ isSuccess: true;
699
+ isPlaceholderData: true;
700
+ status: "success";
701
+ dataUpdatedAt: number;
702
+ errorUpdatedAt: number;
703
+ failureCount: number;
704
+ failureReason: Error | null;
705
+ errorUpdateCount: number;
706
+ isFetched: boolean;
707
+ isFetchedAfterMount: boolean;
708
+ isFetching: boolean;
709
+ isInitialLoading: boolean;
710
+ isPaused: boolean;
711
+ isRefetching: boolean;
712
+ isStale: boolean;
713
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<{
714
+ id: string;
715
+ userId: string;
716
+ email: string;
717
+ effectivePlanId: string;
718
+ status: string;
719
+ isUnlimited: boolean;
720
+ creditsAvailable: number;
721
+ creditsAllocatedThisPeriod: number;
722
+ topOffCreditsAvailable: number;
723
+ topOffCreditsTotal: number;
724
+ allocationSource: string;
725
+ sourceDetails: {};
726
+ periodStart: null;
727
+ periodEnd: null;
728
+ planTermEndTimestamp: null;
729
+ ownerType: string;
730
+ createdAt: string;
731
+ lastUpdatedAt: string;
732
+ } | {
733
+ totalCreditsAvailable: number;
734
+ allocationSource: string;
735
+ createdAt: string;
736
+ creditsAllocatedThisPeriod: number;
737
+ effectivePlanId: string;
738
+ email: string;
739
+ isUnlimited: boolean;
740
+ lastUpdatedAt: string;
741
+ ownerType: string;
742
+ periodStart: string;
743
+ periodEnd: string;
744
+ planTermEndTimestamp: string | null;
745
+ sourceDetails: Record<string, unknown>;
746
+ creditsAvailable?: number;
747
+ topOffCreditsAvailable?: number;
748
+ id: string;
749
+ userId?: undefined;
750
+ status?: undefined;
751
+ topOffCreditsTotal?: undefined;
752
+ }, Error>>;
753
+ fetchStatus: _tanstack_react_query.FetchStatus;
754
+ promise: Promise<{
755
+ id: string;
756
+ userId: string;
757
+ email: string;
758
+ effectivePlanId: string;
759
+ status: string;
760
+ isUnlimited: boolean;
761
+ creditsAvailable: number;
762
+ creditsAllocatedThisPeriod: number;
763
+ topOffCreditsAvailable: number;
764
+ topOffCreditsTotal: number;
765
+ allocationSource: string;
766
+ sourceDetails: {};
767
+ periodStart: null;
768
+ periodEnd: null;
769
+ planTermEndTimestamp: null;
770
+ ownerType: string;
771
+ createdAt: string;
772
+ lastUpdatedAt: string;
773
+ } | {
774
+ totalCreditsAvailable: number;
775
+ allocationSource: string;
776
+ createdAt: string;
777
+ creditsAllocatedThisPeriod: number;
778
+ effectivePlanId: string;
779
+ email: string;
780
+ isUnlimited: boolean;
781
+ lastUpdatedAt: string;
782
+ ownerType: string;
783
+ periodStart: string;
784
+ periodEnd: string;
785
+ planTermEndTimestamp: string | null;
786
+ sourceDetails: Record<string, unknown>;
787
+ creditsAvailable?: number;
788
+ topOffCreditsAvailable?: number;
789
+ id: string;
790
+ userId?: undefined;
791
+ status?: undefined;
792
+ topOffCreditsTotal?: undefined;
793
+ }>;
794
+ };
795
+
796
+ declare const attachScoresAssignment: (args_0: {
797
+ assignments: AssignmentWithId[];
798
+ analyticType: AssignmentAnalyticsType;
799
+ studentId?: string;
800
+ currentUserId: string;
801
+ }) => Promise<{
802
+ scores: any;
803
+ id: string;
804
+ isAvailable: boolean;
805
+ name: string;
806
+ description: string;
807
+ scheduledTime?: string | null;
808
+ dueTime?: {
809
+ hours: number;
810
+ minutes: number;
811
+ nanos: number;
812
+ };
813
+ speakableio: boolean;
814
+ owners: string[];
815
+ image: {
816
+ path: string | null;
817
+ url: string;
818
+ };
819
+ dueDate: {
820
+ day: number;
821
+ month: number;
822
+ year: number;
823
+ };
824
+ teacherName: string;
825
+ courseWorkId: string | null;
826
+ dueDateTimestamp: CustomTimestamp;
827
+ scheduledTimeTimestamp: number;
828
+ active: boolean;
829
+ voice: string | null;
830
+ setId: string;
831
+ dateMade: {
832
+ seconds: number;
833
+ nanoseconds: number;
834
+ };
835
+ maxPoints: number;
836
+ courseId: string;
837
+ isAssessment: boolean;
838
+ ltiDeeplink?: string;
839
+ content?: string[];
840
+ weights?: Record<string, number>;
841
+ language?: string;
842
+ types?: { [key in ActivityPageType]?: number; };
843
+ aiEnabled?: boolean;
844
+ chat_experience?: boolean;
845
+ }[]>;
846
+
847
+ declare function clearScore(params: {
848
+ isAssignment: boolean;
849
+ cardId: string;
850
+ cardScores: PageScore;
851
+ userId: string;
852
+ activityId: string;
853
+ }): Promise<{
854
+ update: Partial<Score>;
855
+ activityId: string;
856
+ }>;
857
+
858
+ declare const createScore: (params: {
859
+ isAssignment: boolean;
860
+ activityId: string;
861
+ userId: string;
862
+ scoreData: Score;
863
+ }) => Promise<{
864
+ id: string;
865
+ }>;
866
+
867
+ declare function _getAllAssignments(): Promise<(AssignmentWithId & {
868
+ id: string;
869
+ })[]>;
870
+ declare const getAllAssignments: () => Promise<(AssignmentWithId & {
871
+ id: string;
872
+ })[]>;
873
+
874
+ declare const getAssignment: (params: {
875
+ assignmentId: string;
876
+ currentUserId: string;
877
+ analyticType?: AssignmentAnalyticsType;
878
+ studentId?: string;
879
+ }) => Promise<AssignmentWithId | {
880
+ scores: any;
881
+ id: string;
882
+ isAvailable: boolean;
883
+ name: string;
884
+ description: string;
885
+ scheduledTime?: string | null;
886
+ dueTime?: {
887
+ hours: number;
888
+ minutes: number;
889
+ nanos: number;
890
+ };
891
+ speakableio: boolean;
892
+ owners: string[];
893
+ image: {
894
+ path: string | null;
895
+ url: string;
896
+ };
897
+ dueDate: {
898
+ day: number;
899
+ month: number;
900
+ year: number;
901
+ };
902
+ teacherName: string;
903
+ courseWorkId: string | null;
904
+ dueDateTimestamp: CustomTimestamp;
905
+ scheduledTimeTimestamp: number;
906
+ active: boolean;
907
+ voice: string | null;
908
+ setId: string;
909
+ dateMade: {
910
+ seconds: number;
911
+ nanoseconds: number;
912
+ };
913
+ maxPoints: number;
914
+ courseId: string;
915
+ isAssessment: boolean;
916
+ ltiDeeplink?: string;
917
+ content?: string[];
918
+ weights?: Record<string, number>;
919
+ language?: string;
920
+ types?: { [key in ActivityPageType]?: number; };
921
+ aiEnabled?: boolean;
922
+ chat_experience?: boolean;
923
+ } | null>;
924
+
925
+ declare const getAssignmentScores: (args_0: {
926
+ assignmentId: string;
927
+ currentUserId: string;
928
+ analyticType?: AssignmentAnalyticsType;
929
+ studentId?: string;
930
+ }) => Promise<{
931
+ scores: unknown;
932
+ id: string;
933
+ } | undefined>;
934
+
935
+ declare function getAssignmentScore({ userId, assignment, googleClassroomUserId, }: {
936
+ userId: string;
937
+ assignment: {
938
+ id: string;
939
+ courseId?: string;
940
+ };
941
+ googleClassroomUserId?: string;
942
+ }): Promise<ScoreWithId>;
943
+ declare function getPracticeScore({ userId, setId }: {
944
+ userId: string;
945
+ setId: string;
946
+ }): Promise<ScoreWithId>;
947
+ declare const getScore: (params: {
948
+ userId: string;
949
+ activityId: string;
950
+ courseId?: string;
951
+ googleClassroomUserId?: string;
952
+ isAssignment: boolean;
953
+ }) => Promise<ScoreWithId>;
954
+
955
+ declare const submitAssignmentScore: (args_0: {
956
+ cardIds: string[];
957
+ assignment: {
958
+ id: string;
959
+ name: string;
960
+ owners: string[];
961
+ courseId: string;
962
+ courseWorkId: string;
963
+ isAssessment: boolean;
964
+ };
965
+ weights: Record<string, number>;
966
+ userId: string;
967
+ status: Score["status"];
968
+ studentName: string;
969
+ }) => Promise<{
970
+ success: boolean;
971
+ fieldsUpdated: Score;
972
+ }>;
973
+ declare function submitPracticeScore({ setId, userId, scores, }: {
974
+ userId: string;
975
+ setId: string;
976
+ scores: Score;
977
+ }): Promise<{
978
+ success: boolean;
979
+ fieldsUpdated: Score;
980
+ }>;
981
+
982
+ declare const updateScore: (params: {
983
+ userId: string;
984
+ data: Partial<Score>;
985
+ isAssignment: boolean;
986
+ activityId: string;
987
+ }) => Promise<void>;
988
+ declare const updateCardScore: (params: {
989
+ userId: string;
990
+ cardId: string;
991
+ isAssignment: boolean;
992
+ activityId: string;
993
+ updates: {
994
+ cardScore: PageScore;
995
+ progress: number;
996
+ score: number;
997
+ };
998
+ }) => Promise<void>;
999
+
1000
+ declare const createCard: (args_0: {
1001
+ data: Partial<PageActivity>;
1002
+ }) => Promise<{
1003
+ id: string;
1004
+ } & Partial<PageActivity>>;
1005
+ declare const createCards: (args_0: {
1006
+ cards: PageActivity[];
1007
+ }) => Promise<{
1008
+ id: string;
1009
+ owners: string[];
1010
+ checked?: boolean;
1011
+ completed?: boolean;
1012
+ media_area_id?: string | null;
1013
+ media_area_layout?: "left" | "right" | null;
1014
+ score?: number;
1015
+ verificationStatus?: VerificationCardStatus;
1016
+ native_text?: string;
1017
+ repeat?: number;
1018
+ language?: string | null;
1019
+ image?: {
1020
+ path?: string | null;
1021
+ url?: string;
1022
+ };
1023
+ audio?: {
1024
+ path?: string | null;
1025
+ url?: string;
1026
+ } | null;
1027
+ notes?: string;
1028
+ difficulty?: string;
1029
+ default_language?: string;
1030
+ target_text?: string;
1031
+ type: ActivityPageType;
1032
+ grading_criteria?: string;
1033
+ scoring_type?: string;
1034
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
1035
+ feedback_types?: string[];
1036
+ rubricId?: string;
1037
+ prompt?: string;
1038
+ title?: string;
1039
+ passing_score?: number;
1040
+ maxCharacters?: number;
1041
+ answer?: string[];
1042
+ choices?: {
1043
+ value: string;
1044
+ option: string;
1045
+ }[];
1046
+ MCQType?: string;
1047
+ multipleAttemptsAllowed?: boolean;
1048
+ allowRetries?: boolean;
1049
+ question?: string;
1050
+ respondTime?: number;
1051
+ hidePrompt?: boolean;
1052
+ videoUrl?: string;
1053
+ link?: string;
1054
+ text?: string;
1055
+ isListenAloud?: boolean;
1056
+ embedCode?: string;
1057
+ attempt?: number;
1058
+ correct?: number;
1059
+ autoGrade?: boolean;
1060
+ points?: number;
1061
+ shuffle?: boolean;
1062
+ translation?: string;
1063
+ includeAIContext?: boolean;
1064
+ media_area_context_ref?: string | null;
1065
+ standardId?: string;
1066
+ target_proficiency_level?: string;
1067
+ allowTTS?: boolean;
1068
+ feedback_language?: string | null;
1069
+ correct_answer?: string | null;
1070
+ limit_attempts?: boolean;
1071
+ max_attempts?: number;
1072
+ rich_text?: string;
1073
+ }[]>;
1074
+
1075
+ declare const getCard: (params: {
1076
+ cardId: string;
1077
+ }) => Promise<PageActivityWithId | null>;
1078
+
1079
+ declare const getVerificationStatus: (target_text: string, language: string) => Promise<VerificationCardStatus>;
1080
+
1081
+ declare const createNotification: ({ data, type, userId, profile, }: {
1082
+ type: SpeakableNotificationType;
1083
+ data: any;
1084
+ userId: string;
1085
+ profile: User["profile"];
1086
+ }) => Promise<any>;
1087
+
1088
+ declare const sendNotification: (sendTo: string[], notification: any) => Promise<any>;
1089
+
1090
+ declare const getSet: (args_0: {
1091
+ setId: string;
1092
+ }) => Promise<SetWithId | null>;
1093
+
1094
+ declare const createFsClientNative: ({ db, httpsCallable, logEvent }: FsClientParams) => {
1095
+ assignmentRepo: {
1096
+ getAssignment: (params: {
1097
+ assignmentId: string;
1098
+ currentUserId: string;
1099
+ analyticType?: AssignmentAnalyticsType;
1100
+ studentId?: string;
1101
+ }) => Promise<AssignmentWithId | {
1102
+ scores: any;
1103
+ id: string;
1104
+ isAvailable: boolean;
1105
+ name: string;
1106
+ description: string;
1107
+ scheduledTime?: string | null;
1108
+ dueTime?: {
1109
+ hours: number;
1110
+ minutes: number;
1111
+ nanos: number;
1112
+ };
1113
+ speakableio: boolean;
1114
+ owners: string[];
1115
+ image: {
1116
+ path: string | null;
1117
+ url: string;
1118
+ };
1119
+ dueDate: {
1120
+ day: number;
1121
+ month: number;
1122
+ year: number;
1123
+ };
1124
+ teacherName: string;
1125
+ courseWorkId: string | null;
1126
+ dueDateTimestamp: CustomTimestamp;
1127
+ scheduledTimeTimestamp: number;
1128
+ active: boolean;
1129
+ voice: string | null;
1130
+ setId: string;
1131
+ dateMade: {
1132
+ seconds: number;
1133
+ nanoseconds: number;
1134
+ };
1135
+ maxPoints: number;
1136
+ courseId: string;
1137
+ isAssessment: boolean;
1138
+ ltiDeeplink?: string;
1139
+ content?: string[];
1140
+ weights?: Record<string, number>;
1141
+ language?: string;
1142
+ types?: { [key in ActivityPageType]?: number; };
1143
+ aiEnabled?: boolean;
1144
+ chat_experience?: boolean;
1145
+ } | null>;
1146
+ attachScoresAssignment: (args_0: {
1147
+ assignments: AssignmentWithId[];
1148
+ analyticType: AssignmentAnalyticsType;
1149
+ studentId?: string;
1150
+ currentUserId: string;
1151
+ }) => Promise<{
1152
+ scores: any;
1153
+ id: string;
1154
+ isAvailable: boolean;
1155
+ name: string;
1156
+ description: string;
1157
+ scheduledTime?: string | null;
1158
+ dueTime?: {
1159
+ hours: number;
1160
+ minutes: number;
1161
+ nanos: number;
1162
+ };
1163
+ speakableio: boolean;
1164
+ owners: string[];
1165
+ image: {
1166
+ path: string | null;
1167
+ url: string;
1168
+ };
1169
+ dueDate: {
1170
+ day: number;
1171
+ month: number;
1172
+ year: number;
1173
+ };
1174
+ teacherName: string;
1175
+ courseWorkId: string | null;
1176
+ dueDateTimestamp: CustomTimestamp;
1177
+ scheduledTimeTimestamp: number;
1178
+ active: boolean;
1179
+ voice: string | null;
1180
+ setId: string;
1181
+ dateMade: {
1182
+ seconds: number;
1183
+ nanoseconds: number;
1184
+ };
1185
+ maxPoints: number;
1186
+ courseId: string;
1187
+ isAssessment: boolean;
1188
+ ltiDeeplink?: string;
1189
+ content?: string[];
1190
+ weights?: Record<string, number>;
1191
+ language?: string;
1192
+ types?: { [key in ActivityPageType]?: number; };
1193
+ aiEnabled?: boolean;
1194
+ chat_experience?: boolean;
1195
+ }[]>;
1196
+ getAssignmentScores: (args_0: {
1197
+ assignmentId: string;
1198
+ currentUserId: string;
1199
+ analyticType?: AssignmentAnalyticsType;
1200
+ studentId?: string;
1201
+ }) => Promise<{
1202
+ scores: unknown;
1203
+ id: string;
1204
+ } | undefined>;
1205
+ getAllAssignments: () => Promise<(AssignmentWithId & {
1206
+ id: string;
1207
+ })[]>;
1208
+ };
1209
+ cardRepo: {
1210
+ createCard: (args_0: {
1211
+ data: Partial<PageActivity>;
1212
+ }) => Promise<{
1213
+ id: string;
1214
+ } & Partial<PageActivity>>;
1215
+ createCards: (args_0: {
1216
+ cards: PageActivity[];
1217
+ }) => Promise<{
1218
+ id: string;
1219
+ owners: string[];
1220
+ checked?: boolean;
1221
+ completed?: boolean;
1222
+ media_area_id?: string | null;
1223
+ media_area_layout?: "left" | "right" | null;
1224
+ score?: number;
1225
+ verificationStatus?: VerificationCardStatus;
1226
+ native_text?: string;
1227
+ repeat?: number;
1228
+ language?: string | null;
1229
+ image?: {
1230
+ path?: string | null;
1231
+ url?: string;
1232
+ };
1233
+ audio?: {
1234
+ path?: string | null;
1235
+ url?: string;
1236
+ } | null;
1237
+ notes?: string;
1238
+ difficulty?: string;
1239
+ default_language?: string;
1240
+ target_text?: string;
1241
+ type: ActivityPageType;
1242
+ grading_criteria?: string;
1243
+ scoring_type?: string;
1244
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
1245
+ feedback_types?: string[];
1246
+ rubricId?: string;
1247
+ prompt?: string;
1248
+ title?: string;
1249
+ passing_score?: number;
1250
+ maxCharacters?: number;
1251
+ answer?: string[];
1252
+ choices?: {
1253
+ value: string;
1254
+ option: string;
1255
+ }[];
1256
+ MCQType?: string;
1257
+ multipleAttemptsAllowed?: boolean;
1258
+ allowRetries?: boolean;
1259
+ question?: string;
1260
+ respondTime?: number;
1261
+ hidePrompt?: boolean;
1262
+ videoUrl?: string;
1263
+ link?: string;
1264
+ text?: string;
1265
+ isListenAloud?: boolean;
1266
+ embedCode?: string;
1267
+ attempt?: number;
1268
+ correct?: number;
1269
+ autoGrade?: boolean;
1270
+ points?: number;
1271
+ shuffle?: boolean;
1272
+ translation?: string;
1273
+ includeAIContext?: boolean;
1274
+ media_area_context_ref?: string | null;
1275
+ standardId?: string;
1276
+ target_proficiency_level?: string;
1277
+ allowTTS?: boolean;
1278
+ feedback_language?: string | null;
1279
+ correct_answer?: string | null;
1280
+ limit_attempts?: boolean;
1281
+ max_attempts?: number;
1282
+ rich_text?: string;
1283
+ }[]>;
1284
+ getCard: (params: {
1285
+ cardId: string;
1286
+ }) => Promise<PageActivityWithId | null>;
1287
+ };
1288
+ };
1289
+
1290
+ interface FirebaseConfig {
1291
+ db: Firestore;
1292
+ helpers: FirestoreHelpers;
1293
+ httpsCallable: (name: string) => CallableFunction;
1294
+ logEvent: (name: string, data: any) => void;
1295
+ }
1296
+ type FirebasePath = string;
1297
+ declare class FirebaseAPI {
1298
+ private static instance;
1299
+ private config;
1300
+ private constructor();
1301
+ static getInstance(): FirebaseAPI;
1302
+ initialize(config: FirebaseConfig): void;
1303
+ get db(): Firestore;
1304
+ get helpers(): FirestoreHelpers;
1305
+ get httpsCallable(): ((name: string) => CallableFunction) | undefined;
1306
+ logEvent(name: string, data: any): void;
1307
+ accessQueryConstraints(): {
1308
+ query: typeof _firebase_firestore.query;
1309
+ orderBy: typeof _firebase_firestore.orderBy;
1310
+ limit: typeof _firebase_firestore.limit;
1311
+ startAt: typeof _firebase_firestore.startAt;
1312
+ startAfter: typeof _firebase_firestore.startAfter;
1313
+ endAt: typeof _firebase_firestore.endAt;
1314
+ endBefore: typeof _firebase_firestore.endBefore;
1315
+ where: typeof _firebase_firestore.where;
1316
+ increment: typeof _firebase_firestore.increment;
1317
+ };
1318
+ accessHelpers(): {
1319
+ doc: (path: FirebasePath) => _firebase_firestore.DocumentReference<DocumentData, DocumentData>;
1320
+ collection: (path: FirebasePath) => _firebase_firestore.CollectionReference<DocumentData, DocumentData>;
1321
+ writeBatch: () => _firebase_firestore.WriteBatch;
1322
+ serverTimestamp: typeof _firebase_firestore.serverTimestamp;
1323
+ setDoc: typeof _firebase_firestore.setDoc;
1324
+ };
1325
+ getDoc<T>(path: FirebasePath): Promise<{
1326
+ id: string;
1327
+ data: T | null;
1328
+ }>;
1329
+ getDocs<T>(path: FirebasePath, ...queryConstraints: QueryConstraint[]): Promise<{
1330
+ data: (T & {
1331
+ id: string;
1332
+ })[];
1333
+ querySnapshot: _firebase_firestore.QuerySnapshot<DocumentData, DocumentData>;
1334
+ empty: boolean;
1335
+ }>;
1336
+ addDoc<T extends WithFieldValue<DocumentData>>(path: FirebasePath, data: T): Promise<{
1337
+ id: string;
1338
+ } & T>;
1339
+ setDoc<T extends WithFieldValue<DocumentData>>(path: FirebasePath, data: T, options?: SetOptions): Promise<void>;
1340
+ updateDoc(path: FirebasePath, data: any): Promise<void>;
1341
+ deleteDoc(path: FirebasePath): Promise<void>;
1342
+ runTransaction<T>(updateFunction: (transaction: any) => Promise<T>): Promise<T>;
1343
+ runBatch(operations: (() => Promise<void>)[]): Promise<void>;
1344
+ writeBatch(): _firebase_firestore.WriteBatch;
1345
+ }
1346
+ declare const api: FirebaseAPI;
1347
+
1348
+ export { ActivityPageType, AssignmentWithId, CallableFunction, type CreditContract, CustomTimestamp, FirebaseAPI, FirestoreHelpers, PageActivity, PageActivityWithId, PageScore, Score, ScoreWithId, SetWithId, User, _getAllAssignments, api, attachScoresAssignment, clearScore, createCard, createCards, createFsClientNative, createNotification, createScore, creditQueryKeys, getAllAssignments, getAssignment, getAssignmentScore, getAssignmentScores, getCard, getPracticeScore, getScore, getSet, getVerificationStatus, sendNotification, submitAssignmentScore, submitPracticeScore, updateCardScore, updateScore, useActivityTracker, useUserCredits };