@examplary/sdk 0.0.1

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 (36) hide show
  1. package/README.md +25 -0
  2. package/dist/generated/client/client/client.gen.d.ts +2 -0
  3. package/dist/generated/client/client/client.gen.js +204 -0
  4. package/dist/generated/client/client/index.d.ts +8 -0
  5. package/dist/generated/client/client/index.js +16 -0
  6. package/dist/generated/client/client/types.gen.d.ts +88 -0
  7. package/dist/generated/client/client/types.gen.js +3 -0
  8. package/dist/generated/client/client/utils.gen.d.ts +14 -0
  9. package/dist/generated/client/client/utils.gen.js +326 -0
  10. package/dist/generated/client/client.gen.d.ts +12 -0
  11. package/dist/generated/client/client.gen.js +6 -0
  12. package/dist/generated/client/core/auth.gen.d.ts +18 -0
  13. package/dist/generated/client/core/auth.gen.js +69 -0
  14. package/dist/generated/client/core/bodySerializer.gen.d.ts +25 -0
  15. package/dist/generated/client/core/bodySerializer.gen.js +80 -0
  16. package/dist/generated/client/core/params.gen.d.ts +43 -0
  17. package/dist/generated/client/core/params.gen.js +191 -0
  18. package/dist/generated/client/core/pathSerializer.gen.d.ts +33 -0
  19. package/dist/generated/client/core/pathSerializer.gen.js +147 -0
  20. package/dist/generated/client/core/queryKeySerializer.gen.d.ts +18 -0
  21. package/dist/generated/client/core/queryKeySerializer.gen.js +140 -0
  22. package/dist/generated/client/core/serverSentEvents.gen.d.ts +71 -0
  23. package/dist/generated/client/core/serverSentEvents.gen.js +282 -0
  24. package/dist/generated/client/core/types.gen.d.ts +78 -0
  25. package/dist/generated/client/core/types.gen.js +3 -0
  26. package/dist/generated/client/core/utils.gen.d.ts +19 -0
  27. package/dist/generated/client/core/utils.gen.js +117 -0
  28. package/dist/generated/client/index.d.ts +2 -0
  29. package/dist/generated/client/index.js +31 -0
  30. package/dist/generated/client/sdk.gen.d.ts +685 -0
  31. package/dist/generated/client/sdk.gen.js +1295 -0
  32. package/dist/generated/client/types.gen.d.ts +1777 -0
  33. package/dist/generated/client/types.gen.js +3 -0
  34. package/dist/src/index.d.ts +14 -0
  35. package/dist/src/index.js +81 -0
  36. package/package.json +37 -0
@@ -0,0 +1,1777 @@
1
+ export type ClientOptions = {
2
+ baseURL: 'https://api.examplary.ai' | (string & {});
3
+ };
4
+ export type GetQuestionTypesPublicData = {
5
+ body?: never;
6
+ path?: never;
7
+ query?: never;
8
+ url: '/question-types/public';
9
+ };
10
+ export type DeleteQuestionTypesByIdData = {
11
+ body?: never;
12
+ path: {
13
+ id: string;
14
+ };
15
+ query?: never;
16
+ url: '/question-types/{id}';
17
+ };
18
+ export type GetQuestionTypesByIdData = {
19
+ body?: never;
20
+ path: {
21
+ id: string;
22
+ };
23
+ query?: never;
24
+ url: '/question-types/{id}';
25
+ };
26
+ export type GetQuestionTypesByIdExportQti3PciData = {
27
+ body?: never;
28
+ path: {
29
+ id: string;
30
+ };
31
+ query?: never;
32
+ url: '/question-types/{id}/export/qti3-pci';
33
+ };
34
+ export type GetQuestionTypesData = {
35
+ body?: never;
36
+ path?: never;
37
+ query?: never;
38
+ url: '/question-types';
39
+ };
40
+ export type PostQuestionTypesData = {
41
+ /**
42
+ * Schema for defining question types in the Examplary system
43
+ */
44
+ body?: {
45
+ $schema?: string;
46
+ /**
47
+ * Unique identifier for the question type (e.g. 'my-org.color-picker')
48
+ */
49
+ id: string;
50
+ /**
51
+ * Display name for the question type, can be a simple string or translation object
52
+ */
53
+ name: string | {
54
+ [key: string]: string;
55
+ };
56
+ /**
57
+ * Description of the question type, can be a simple string or translation object
58
+ */
59
+ description: string | {
60
+ [key: string]: string;
61
+ };
62
+ /**
63
+ * Path to the icon for this question type
64
+ */
65
+ icon?: string;
66
+ /**
67
+ * Keyboard shortcut for quick access to this question type
68
+ */
69
+ shortcut?: string;
70
+ /**
71
+ * Options for AI question generation
72
+ */
73
+ generation?: {
74
+ /**
75
+ * Whether this question type can be automatically generated using AI (default to false)
76
+ */
77
+ enabled: boolean;
78
+ /**
79
+ * Optional instructions to guide AI in generating this question type
80
+ */
81
+ instructions?: string;
82
+ };
83
+ /**
84
+ * Options for AI question grading
85
+ */
86
+ grading?: {
87
+ /**
88
+ * Whether this question type can be automatically graded using AI (default to false)
89
+ */
90
+ enabled: boolean;
91
+ /**
92
+ * Optional instructions to guide AI in grading this question type
93
+ */
94
+ instructions?: string;
95
+ };
96
+ /**
97
+ * Estimated time in minutes to complete this question type
98
+ */
99
+ timeEstimateMinutes?: number;
100
+ /**
101
+ * Whether this question type uses AI functionality
102
+ */
103
+ isAi?: boolean;
104
+ /**
105
+ * Background color for the question type
106
+ */
107
+ backgroundColor?: string;
108
+ /**
109
+ * Position enforcement for this question type
110
+ */
111
+ enforcePosition?: 'start' | 'end';
112
+ /**
113
+ * Enforced title for this question type
114
+ */
115
+ enforceTitle?: string | {
116
+ [key: string]: string;
117
+ };
118
+ /**
119
+ * Whether to hide settings for this question type
120
+ */
121
+ hideSettings?: boolean;
122
+ /**
123
+ * Whether the preview can be refreshed for this question type
124
+ */
125
+ isPreviewRefreshable?: boolean;
126
+ /**
127
+ * Whether this question type has simple scoring
128
+ */
129
+ hasSimpleScoring?: boolean;
130
+ /**
131
+ * Placeholder text for the title field
132
+ */
133
+ titlePlaceholder?: string | {
134
+ [key: string]: string;
135
+ };
136
+ /**
137
+ * Placeholder text for the description field
138
+ */
139
+ descriptionPlaceholder?: string | {
140
+ [key: string]: string;
141
+ };
142
+ /**
143
+ * Placeholder text for untitled questions
144
+ */
145
+ untitledPlaceholder?: string | {
146
+ [key: string]: string;
147
+ };
148
+ /**
149
+ * Paths to the components used by this question type
150
+ */
151
+ components?: {
152
+ /**
153
+ * Path to the assessment component (question content)
154
+ */
155
+ assessment?: string;
156
+ /**
157
+ * Path to the print component (for printing the question)
158
+ */
159
+ print?: string;
160
+ /**
161
+ * Path to the settings area component (for configuring question settings)
162
+ */
163
+ 'settings-area'?: string;
164
+ /**
165
+ * Path to the results component (for displaying answers)
166
+ */
167
+ results?: string;
168
+ };
169
+ /**
170
+ * Configuration settings for the question type
171
+ */
172
+ settings?: Array<{
173
+ /**
174
+ * Unique identifier for the setting
175
+ */
176
+ id: string;
177
+ /**
178
+ * Display name for the setting
179
+ */
180
+ name: string | {
181
+ [key: string]: string;
182
+ };
183
+ /**
184
+ * Help text for the setting
185
+ */
186
+ helpText?: string | {
187
+ [key: string]: string;
188
+ };
189
+ /**
190
+ * Description to help AI agents auto-generate question settings
191
+ */
192
+ description?: string;
193
+ /**
194
+ * Type of the setting
195
+ */
196
+ type: 'enum' | 'string' | 'string-array' | 'number' | 'boolean' | 'custom' | 'scoring-criteria' | 'tags' | 'question-type';
197
+ index?: number;
198
+ /**
199
+ * Whether the setting is hidden from the user
200
+ */
201
+ hidden?: boolean;
202
+ /**
203
+ * Default value for the setting
204
+ */
205
+ default?: unknown;
206
+ /**
207
+ * Whether this setting is required
208
+ */
209
+ required?: boolean;
210
+ /**
211
+ * Available options for enum type settings
212
+ */
213
+ options?: Array<{
214
+ /**
215
+ * Option value
216
+ */
217
+ value: string;
218
+ /**
219
+ * Option label
220
+ */
221
+ label: string | {
222
+ [key: string]: string;
223
+ };
224
+ }>;
225
+ /**
226
+ * Placeholder text for the setting
227
+ */
228
+ placeholder?: string | {
229
+ [key: string]: string;
230
+ };
231
+ /**
232
+ * Step value for number type settings
233
+ */
234
+ step?: number;
235
+ /**
236
+ * Minimum value for number type settings
237
+ */
238
+ min?: number;
239
+ /**
240
+ * Maximum value for number type settings
241
+ */
242
+ max?: number;
243
+ }>;
244
+ /**
245
+ * Whether this question type is public and can be used by all users
246
+ */
247
+ public?: boolean;
248
+ /**
249
+ * Custom translations for this question type
250
+ */
251
+ translations?: {
252
+ [key: string]: string | {
253
+ [key: string]: string;
254
+ };
255
+ };
256
+ /**
257
+ * Export configuration for various formats
258
+ */
259
+ export?: {
260
+ /**
261
+ * QTI 3.0 mapping configuration for transforming questions to QTI format
262
+ */
263
+ qti3?: {
264
+ interaction: {
265
+ /**
266
+ * The QTI interaction type to generate
267
+ */
268
+ type: 'AssociateInteraction' | 'ChoiceInteraction' | 'DrawingInteraction' | 'EndAttemptInteraction' | 'ExtendedTextInteraction' | 'GapMatchInteraction' | 'GraphicAssociateInteraction' | 'GraphicGapMatchInteraction' | 'GraphicOrderInteraction' | 'HotspotInteraction' | 'HottextInteraction' | 'InlineChoiceInteraction' | 'MatchInteraction' | 'MediaInteraction' | 'OrderInteraction' | 'PortableCustomInteraction' | 'PositionObjectInteraction' | 'SelectPointInteraction' | 'SliderInteraction' | 'TextEntryInteraction' | 'UploadInteraction';
269
+ options?: {
270
+ [key: string]: string | number | boolean | Array<unknown> | {
271
+ [key: string]: unknown;
272
+ };
273
+ };
274
+ };
275
+ };
276
+ };
277
+ stylesheet?: string;
278
+ index?: number;
279
+ /**
280
+ * Optional metadata for the question type, only used by external applications
281
+ */
282
+ metadata?: {
283
+ [key: string]: string | number | boolean | null;
284
+ };
285
+ };
286
+ path?: never;
287
+ query?: never;
288
+ url: '/question-types';
289
+ };
290
+ export type PostQuestionTypesByIdEnableData = {
291
+ body?: never;
292
+ path: {
293
+ id: string;
294
+ };
295
+ query?: never;
296
+ url: '/question-types/{id}/enable';
297
+ };
298
+ export type PostQuestionTypesByIdDisableData = {
299
+ body?: never;
300
+ path: {
301
+ id: string;
302
+ };
303
+ query?: never;
304
+ url: '/question-types/{id}/disable';
305
+ };
306
+ export type GetLibraryPublishersByPublisherIdItemsData = {
307
+ body?: never;
308
+ path: {
309
+ publisherId: string;
310
+ };
311
+ query?: never;
312
+ url: '/library/publishers/{publisherId}/items';
313
+ };
314
+ export type PostLibraryPublishersByPublisherIdItemsData = {
315
+ body?: {
316
+ /**
317
+ * The type of resource being added to the library. Currently only 'exam' is supported.
318
+ */
319
+ resourceType: 'exam';
320
+ /**
321
+ * The ID of the resource being added to the library, e.g. `exam_123`.
322
+ */
323
+ resourceId: string;
324
+ /**
325
+ * A publicly visible description of the library item.
326
+ */
327
+ description: string;
328
+ /**
329
+ * The name of the library item. If not provided, the name of the original resource will be used.
330
+ */
331
+ name?: string | null;
332
+ /**
333
+ * The student level associated with the library item.
334
+ */
335
+ studentLevel?: string | null;
336
+ /**
337
+ * The subject associated with the library item.
338
+ */
339
+ subject?: string | null;
340
+ /**
341
+ * Optional tags, e.g. ['math', 'science'].
342
+ */
343
+ tags?: Array<string> | null;
344
+ };
345
+ path: {
346
+ publisherId: string;
347
+ };
348
+ query?: never;
349
+ url: '/library/publishers/{publisherId}/items';
350
+ };
351
+ export type GetLibraryItemsFeaturedData = {
352
+ body?: never;
353
+ path?: never;
354
+ query?: never;
355
+ url: '/library/items/featured';
356
+ };
357
+ export type DeleteLibraryItemsByItemIdData = {
358
+ body?: never;
359
+ path: {
360
+ itemId: string;
361
+ };
362
+ query?: never;
363
+ url: '/library/items/{itemId}';
364
+ };
365
+ export type PatchLibraryItemsByItemIdData = {
366
+ body?: {
367
+ /**
368
+ * A publicly visible description of the library item.
369
+ */
370
+ description?: string;
371
+ /**
372
+ * The name of the library item. If not provided, the name of the original resource will be used.
373
+ */
374
+ name?: string | null;
375
+ /**
376
+ * The student level associated with the library item.
377
+ */
378
+ studentLevel?: string | null;
379
+ /**
380
+ * The subject associated with the library item.
381
+ */
382
+ subject?: string | null;
383
+ /**
384
+ * Optional tags, e.g. ['math', 'science'].
385
+ */
386
+ tags?: Array<string> | null;
387
+ };
388
+ path: {
389
+ itemId: string;
390
+ };
391
+ query?: never;
392
+ url: '/library/items/{itemId}';
393
+ };
394
+ export type GetLibraryPublishersFeaturedData = {
395
+ body?: never;
396
+ path?: never;
397
+ query?: never;
398
+ url: '/library/publishers/featured';
399
+ };
400
+ export type GetLibraryPublishersData = {
401
+ body?: never;
402
+ path?: never;
403
+ query?: never;
404
+ url: '/library/publishers';
405
+ };
406
+ export type PostLibraryPublishersData = {
407
+ body?: {
408
+ name: string;
409
+ bio?: string;
410
+ logoImageUrl?: string;
411
+ socialLinks?: Array<{
412
+ type: 'facebook' | 'instagram' | 'website' | 'tiktok' | 'youtube';
413
+ href: string;
414
+ }>;
415
+ };
416
+ path?: never;
417
+ query?: never;
418
+ url: '/library/publishers';
419
+ };
420
+ export type GetLibraryPublishersMineData = {
421
+ body?: never;
422
+ path?: never;
423
+ query?: never;
424
+ url: '/library/publishers/mine';
425
+ };
426
+ export type DeleteLibraryPublishersByPublisherIdData = {
427
+ body?: never;
428
+ path: {
429
+ publisherId: string;
430
+ };
431
+ query?: never;
432
+ url: '/library/publishers/{publisherId}';
433
+ };
434
+ export type PatchLibraryPublishersByPublisherIdData = {
435
+ body?: {
436
+ name?: string;
437
+ bio?: string;
438
+ logoImageUrl?: string;
439
+ socialLinks?: Array<{
440
+ type: 'facebook' | 'instagram' | 'website' | 'tiktok' | 'youtube';
441
+ href: string;
442
+ }>;
443
+ };
444
+ path: {
445
+ publisherId: string;
446
+ };
447
+ query?: never;
448
+ url: '/library/publishers/{publisherId}';
449
+ };
450
+ export type GetOauthAuthorizeData = {
451
+ body?: never;
452
+ path?: never;
453
+ query: {
454
+ response_type: 'code';
455
+ client_id: string;
456
+ redirect_uri: string;
457
+ scope?: string;
458
+ state?: string;
459
+ code_challenge?: string;
460
+ code_challenge_method?: 'plain' | 'S256';
461
+ };
462
+ url: '/oauth/authorize';
463
+ };
464
+ export type PostOauthTokenData = {
465
+ body?: never;
466
+ path?: never;
467
+ query?: never;
468
+ url: '/oauth/token';
469
+ };
470
+ export type PostEmbedSessionsData = {
471
+ body?: {
472
+ /**
473
+ * The user ID for whom the embed session is created
474
+ */
475
+ actor: string;
476
+ /**
477
+ * UI options for the embed session
478
+ */
479
+ theme: {
480
+ /**
481
+ * CSS hex color code for primary UI elements, either #RRGGBB or #RGB
482
+ */
483
+ primaryColor?: string;
484
+ /**
485
+ * Locale code for UI language. Currently supported: 'en', 'nl' - other values accepted, but will default to English
486
+ */
487
+ locale?: string;
488
+ };
489
+ /**
490
+ * Additional key-value metadata
491
+ */
492
+ metadata?: {
493
+ [key: string]: string | number | boolean | null;
494
+ };
495
+ /**
496
+ * Optional redirect URL after completion
497
+ */
498
+ returnUrl?: string;
499
+ /**
500
+ * Optional allowed origin for postMessage events
501
+ */
502
+ allowedOrigin?: string;
503
+ flow: 'generate-exam';
504
+ /**
505
+ * Preset values for the generate-exam flow
506
+ */
507
+ presets: {
508
+ name?: string | null;
509
+ studentLevel?: string | null;
510
+ taxonomyId?: string | null;
511
+ sourceMaterialIds?: Array<string> | null;
512
+ subject?: string | null;
513
+ context?: string | null;
514
+ language?: string | null;
515
+ intendedDuration?: unknown | null;
516
+ allowedGenerationQuestionTypes?: Array<string> | null;
517
+ };
518
+ };
519
+ path?: never;
520
+ query?: never;
521
+ url: '/embed-sessions';
522
+ };
523
+ export type PostEmbedSessionsResponses = {
524
+ 201: {
525
+ id: string;
526
+ status: 'pending' | 'started' | 'completed' | 'failed' | 'cancelled';
527
+ embedUrl: string;
528
+ flow: 'generate-exam';
529
+ actor: string;
530
+ enabledResponseModes: Array<'return_url' | 'post_message'>;
531
+ createdAt: Date;
532
+ expiresAt: Date;
533
+ createdBy: string;
534
+ presets: unknown;
535
+ outputs: {
536
+ [key: string]: unknown;
537
+ };
538
+ theme: {
539
+ /**
540
+ * CSS hex color code for primary UI elements, either #RRGGBB or #RGB
541
+ */
542
+ primaryColor?: string;
543
+ /**
544
+ * Locale code for UI language. Currently supported: 'en', 'nl' - other values accepted, but will default to English
545
+ */
546
+ locale?: string;
547
+ };
548
+ metadata: {
549
+ [key: string]: unknown;
550
+ };
551
+ };
552
+ };
553
+ export type PostEmbedSessionsResponse = PostEmbedSessionsResponses[keyof PostEmbedSessionsResponses];
554
+ export type DeleteEmbedSessionsByIdData = {
555
+ body?: never;
556
+ path: {
557
+ id: string;
558
+ };
559
+ query?: never;
560
+ url: '/embed-sessions/{id}';
561
+ };
562
+ export type GetEmbedSessionsByIdData = {
563
+ body?: never;
564
+ path: {
565
+ id: string;
566
+ };
567
+ query?: never;
568
+ url: '/embed-sessions/{id}';
569
+ };
570
+ export type GetEmbedSessionsByIdResponses = {
571
+ 200: {
572
+ id: string;
573
+ status: 'pending' | 'started' | 'completed' | 'failed' | 'cancelled';
574
+ embedUrl: string;
575
+ flow: 'generate-exam';
576
+ actor: string;
577
+ enabledResponseModes: Array<'return_url' | 'post_message'>;
578
+ createdAt: Date;
579
+ expiresAt: Date;
580
+ createdBy: string;
581
+ presets: unknown;
582
+ outputs: {
583
+ [key: string]: unknown;
584
+ };
585
+ theme: {
586
+ /**
587
+ * CSS hex color code for primary UI elements, either #RRGGBB or #RGB
588
+ */
589
+ primaryColor?: string;
590
+ /**
591
+ * Locale code for UI language. Currently supported: 'en', 'nl' - other values accepted, but will default to English
592
+ */
593
+ locale?: string;
594
+ };
595
+ metadata: {
596
+ [key: string]: unknown;
597
+ };
598
+ };
599
+ };
600
+ export type GetEmbedSessionsByIdResponse = GetEmbedSessionsByIdResponses[keyof GetEmbedSessionsByIdResponses];
601
+ export type GetMeData = {
602
+ body?: never;
603
+ path?: never;
604
+ query?: never;
605
+ url: '/me';
606
+ };
607
+ export type PatchMeData = {
608
+ body?: {
609
+ /**
610
+ * The user's name
611
+ */
612
+ name?: string;
613
+ /**
614
+ * A map of user preferences
615
+ */
616
+ preferences?: {
617
+ [key: string]: unknown;
618
+ };
619
+ };
620
+ path?: never;
621
+ query?: never;
622
+ url: '/me';
623
+ };
624
+ export type GetMediaUploadData = {
625
+ body?: never;
626
+ path?: never;
627
+ query?: {
628
+ /**
629
+ * Original attachment filename
630
+ */
631
+ filename?: string;
632
+ /**
633
+ * Category of file, used for grouping
634
+ */
635
+ type?: string;
636
+ /**
637
+ * MIME type of the attachment
638
+ */
639
+ contentType?: string;
640
+ };
641
+ url: '/media/upload';
642
+ };
643
+ export type GetMediaUploadResponses = {
644
+ 200: {
645
+ uploadUrl?: string;
646
+ publicUrl?: string;
647
+ };
648
+ };
649
+ export type GetMediaUploadResponse = GetMediaUploadResponses[keyof GetMediaUploadResponses];
650
+ export type DeleteOrgData = {
651
+ body?: never;
652
+ path?: never;
653
+ query?: never;
654
+ url: '/org';
655
+ };
656
+ export type GetOrgData = {
657
+ body?: never;
658
+ path?: never;
659
+ query?: never;
660
+ url: '/org';
661
+ };
662
+ export type PatchOrgData = {
663
+ body?: {
664
+ name?: string;
665
+ logoImageUrl?: string;
666
+ };
667
+ path?: never;
668
+ query?: never;
669
+ url: '/org';
670
+ };
671
+ export type GetOrgsData = {
672
+ body?: never;
673
+ path?: never;
674
+ query?: never;
675
+ url: '/orgs';
676
+ };
677
+ export type PostOrgsData = {
678
+ body?: {
679
+ name: string;
680
+ };
681
+ path?: never;
682
+ query?: never;
683
+ url: '/orgs';
684
+ };
685
+ export type GetApiKeysData = {
686
+ body?: never;
687
+ path?: never;
688
+ query?: never;
689
+ url: '/api-keys';
690
+ };
691
+ export type PostApiKeysResetData = {
692
+ body?: never;
693
+ path?: never;
694
+ query?: never;
695
+ url: '/api-keys/reset';
696
+ };
697
+ export type GetTaxonomiesData = {
698
+ body?: never;
699
+ path?: never;
700
+ query?: never;
701
+ url: '/taxonomies';
702
+ };
703
+ export type PostTaxonomiesData = {
704
+ body?: {
705
+ name: string;
706
+ description?: string;
707
+ instructions?: string;
708
+ levels: Array<{
709
+ name?: string;
710
+ instructions?: string;
711
+ }>;
712
+ };
713
+ path?: never;
714
+ query?: never;
715
+ url: '/taxonomies';
716
+ };
717
+ export type DeleteTaxonomiesByIdData = {
718
+ body?: never;
719
+ path: {
720
+ id: string;
721
+ };
722
+ query?: never;
723
+ url: '/taxonomies/{id}';
724
+ };
725
+ export type PostTaxonomiesByIdData = {
726
+ body?: {
727
+ name: string;
728
+ description?: string;
729
+ instructions?: string;
730
+ levels: Array<{
731
+ name?: string;
732
+ instructions?: string;
733
+ }>;
734
+ [key: string]: unknown | string | string | Array<{
735
+ name?: string;
736
+ instructions?: string;
737
+ }> | undefined;
738
+ };
739
+ path: {
740
+ id: string;
741
+ };
742
+ query?: never;
743
+ url: '/taxonomies/{id}';
744
+ };
745
+ export type GetPermissionsByResourceData = {
746
+ body?: never;
747
+ path: {
748
+ /**
749
+ * The ID of the resource to list permissions for, e.g. `exam_1234`.
750
+ */
751
+ resource: string;
752
+ };
753
+ query?: never;
754
+ url: '/permissions/{resource}';
755
+ };
756
+ export type GetPermissionsByResourceErrors = {
757
+ /**
758
+ * No access to this resource.
759
+ */
760
+ 403: unknown;
761
+ };
762
+ export type GetPermissionsByResourceResponses = {
763
+ /**
764
+ * List of permissions for the specified resource.
765
+ */
766
+ 200: Array<{
767
+ actor: string | string | string;
768
+ role: 'owner' | 'manager' | 'editor' | 'viewer' | 'participant';
769
+ createdAt: Date;
770
+ updatedAt: Date;
771
+ createdBy: string;
772
+ }>;
773
+ };
774
+ export type GetPermissionsByResourceResponse = GetPermissionsByResourceResponses[keyof GetPermissionsByResourceResponses];
775
+ export type PostPermissionsByResourceData = {
776
+ body?: {
777
+ /**
778
+ * The ID of the actor to assign the permission to.
779
+ */
780
+ actor: string | string | string;
781
+ role: 'owner' | 'manager' | 'editor' | 'viewer' | 'participant';
782
+ };
783
+ path: {
784
+ /**
785
+ * The ID of the resource to assign the permission on, e.g. `exam_1234`.
786
+ */
787
+ resource: string;
788
+ };
789
+ query?: never;
790
+ url: '/permissions/{resource}';
791
+ };
792
+ export type PostPermissionsByResourceErrors = {
793
+ /**
794
+ * No access to manage this resource.
795
+ */
796
+ 403: unknown;
797
+ };
798
+ export type PostPermissionsByResourceResponses = {
799
+ /**
800
+ * The created or updated permission.
801
+ */
802
+ 201: {
803
+ actor: string | string | string;
804
+ role: 'owner' | 'manager' | 'editor' | 'viewer' | 'participant';
805
+ createdAt: Date;
806
+ updatedAt: Date;
807
+ createdBy: string;
808
+ };
809
+ };
810
+ export type PostPermissionsByResourceResponse = PostPermissionsByResourceResponses[keyof PostPermissionsByResourceResponses];
811
+ export type DeletePermissionsByResourceByActorData = {
812
+ body?: never;
813
+ path: {
814
+ resource: string;
815
+ actor: string | string | string;
816
+ };
817
+ query?: never;
818
+ url: '/permissions/{resource}/{actor}';
819
+ };
820
+ export type DeletePermissionsByResourceByActorErrors = {
821
+ /**
822
+ * No access to manage this resource.
823
+ */
824
+ 403: unknown;
825
+ };
826
+ export type DeletePermissionsByResourceByActorResponses = {
827
+ /**
828
+ * Permission successfully removed.
829
+ */
830
+ 200: unknown;
831
+ };
832
+ export type GetPermissionsByResourceByActorData = {
833
+ body?: never;
834
+ path: {
835
+ /**
836
+ * The ID of the actor to check role for, e.g. `user_abcd`.
837
+ */
838
+ actor: string | string | string;
839
+ /**
840
+ * The ID of the resource to check role for, e.g. `exam_1234`.
841
+ */
842
+ resource: string;
843
+ };
844
+ query?: never;
845
+ url: '/permissions/{resource}/{actor}';
846
+ };
847
+ export type GetPermissionsByResourceByActorErrors = {
848
+ /**
849
+ * No access to this resource.
850
+ */
851
+ 403: unknown;
852
+ /**
853
+ * The specified actor has no access to the specified resource.
854
+ */
855
+ 404: unknown;
856
+ };
857
+ export type GetPermissionsByResourceByActorResponses = {
858
+ /**
859
+ * Role of the specified actor for the specified resource.
860
+ */
861
+ 200: {
862
+ actor: string | string | string;
863
+ role: 'owner' | 'manager' | 'editor' | 'viewer' | 'participant';
864
+ createdAt: Date;
865
+ updatedAt: Date;
866
+ createdBy: string;
867
+ };
868
+ };
869
+ export type GetPermissionsByResourceByActorResponse = GetPermissionsByResourceByActorResponses[keyof GetPermissionsByResourceByActorResponses];
870
+ export type GetStudentLevelsData = {
871
+ body?: never;
872
+ path?: never;
873
+ query?: never;
874
+ url: '/student-levels';
875
+ };
876
+ export type GetUsersData = {
877
+ body?: never;
878
+ path?: never;
879
+ query?: never;
880
+ url: '/users';
881
+ };
882
+ export type PostUsersData = {
883
+ body?: {
884
+ email: string;
885
+ name?: string;
886
+ role?: 'owner' | 'admin' | 'teacher' | 'student' | 'member';
887
+ sendInvite?: boolean;
888
+ };
889
+ path?: never;
890
+ query?: never;
891
+ url: '/users';
892
+ };
893
+ export type DeleteUsersByIdData = {
894
+ body?: never;
895
+ path: {
896
+ id: string;
897
+ };
898
+ query?: never;
899
+ url: '/users/{id}';
900
+ };
901
+ export type PatchUsersByIdData = {
902
+ body?: never;
903
+ path: {
904
+ id: string;
905
+ };
906
+ query?: never;
907
+ url: '/users/{id}';
908
+ };
909
+ export type GetExamsByIdSessionsData = {
910
+ body?: never;
911
+ path: {
912
+ id: string;
913
+ };
914
+ query?: never;
915
+ url: '/exams/{id}/sessions';
916
+ };
917
+ export type PostExamsByIdSessionsData = {
918
+ body?: never;
919
+ path: {
920
+ id: string;
921
+ };
922
+ query?: never;
923
+ url: '/exams/{id}/sessions';
924
+ };
925
+ export type PostExamsByIdSessionsScanData = {
926
+ body?: never;
927
+ path: {
928
+ id: string;
929
+ };
930
+ query?: never;
931
+ url: '/exams/{id}/sessions/scan';
932
+ };
933
+ export type DeleteExamsByIdSessionsBySessionIdData = {
934
+ body?: never;
935
+ path: {
936
+ id: string;
937
+ sessionId: string;
938
+ };
939
+ query?: never;
940
+ url: '/exams/{id}/sessions/{sessionId}';
941
+ };
942
+ export type GetExamsByIdSessionsBySessionIdData = {
943
+ body?: never;
944
+ path: {
945
+ id: string;
946
+ sessionId: string;
947
+ };
948
+ query?: never;
949
+ url: '/exams/{id}/sessions/{sessionId}';
950
+ };
951
+ export type PostExamsByIdSessionsBySessionIdFeedbackData = {
952
+ body?: {
953
+ /**
954
+ * Question ID to provide feedback for
955
+ */
956
+ question: string;
957
+ /**
958
+ * Points to award for the answer
959
+ */
960
+ pointsAwarded?: number;
961
+ /**
962
+ * Optional teacher feedback for the answer
963
+ */
964
+ feedback?: string;
965
+ };
966
+ path: {
967
+ id: string;
968
+ sessionId: string;
969
+ };
970
+ query?: never;
971
+ url: '/exams/{id}/sessions/{sessionId}/feedback';
972
+ };
973
+ export type PostExamsByIdSessionsBySessionIdOverallFeedbackData = {
974
+ body?: {
975
+ /**
976
+ * Teacher feedback for the test as a whole
977
+ */
978
+ feedback?: string | null;
979
+ };
980
+ path: {
981
+ id: string;
982
+ sessionId: string;
983
+ };
984
+ query?: never;
985
+ url: '/exams/{id}/sessions/{sessionId}/overall-feedback';
986
+ };
987
+ export type PostExamsByIdSessionsBySessionIdGenerateOverallFeedbackData = {
988
+ body?: never;
989
+ path: {
990
+ id: string;
991
+ sessionId: string;
992
+ };
993
+ query?: never;
994
+ url: '/exams/{id}/sessions/{sessionId}/generate-overall-feedback';
995
+ };
996
+ export type PostExamsByIdSessionsBySessionIdSuggestionsAcceptAllData = {
997
+ body?: never;
998
+ path: {
999
+ id: string;
1000
+ sessionId: string;
1001
+ };
1002
+ query?: never;
1003
+ url: '/exams/{id}/sessions/{sessionId}/suggestions/accept-all';
1004
+ };
1005
+ export type PostExamsByIdSessionsBySessionIdSuggestionsByQuestionIdAcceptData = {
1006
+ body?: never;
1007
+ path: {
1008
+ id: string;
1009
+ sessionId: string;
1010
+ questionId: string;
1011
+ };
1012
+ query?: never;
1013
+ url: '/exams/{id}/sessions/{sessionId}/suggestions/{questionId}/accept';
1014
+ };
1015
+ export type PostExamsByIdQuestionsImportData = {
1016
+ body?: {
1017
+ /**
1018
+ * File name
1019
+ */
1020
+ name?: string;
1021
+ /**
1022
+ * MIME type of the file, e.g. application/pdf
1023
+ */
1024
+ type?: string;
1025
+ /**
1026
+ * URL of the file, required if no content is specified.
1027
+ */
1028
+ url?: string;
1029
+ /**
1030
+ * Content of the file as a string, as an alternative to URL. Only supported for exports from other systems (e.g. Moodle XML).
1031
+ */
1032
+ content?: string;
1033
+ /**
1034
+ * Whether to keep existing exam settings when importing questions via AI.
1035
+ */
1036
+ keepExistingSettings?: boolean;
1037
+ };
1038
+ path: {
1039
+ id: string;
1040
+ };
1041
+ query?: never;
1042
+ url: '/exams/{id}/questions/import';
1043
+ };
1044
+ export type PostExamsByIdQuestionsGenerateData = {
1045
+ body?: {
1046
+ message: string;
1047
+ };
1048
+ path: {
1049
+ id: string;
1050
+ };
1051
+ query?: never;
1052
+ url: '/exams/{id}/questions/generate';
1053
+ };
1054
+ export type PostExamsByIdQuestionsByQuestionIdGenerateData = {
1055
+ body?: {
1056
+ message: string;
1057
+ };
1058
+ path: {
1059
+ id: string;
1060
+ questionId: string;
1061
+ };
1062
+ query?: never;
1063
+ url: '/exams/{id}/questions/{questionId}/generate';
1064
+ };
1065
+ export type PostExamsByIdExportQti3ZipData = {
1066
+ body?: never;
1067
+ path: {
1068
+ id: string;
1069
+ };
1070
+ query?: never;
1071
+ url: '/exams/{id}/export/qti3-zip';
1072
+ };
1073
+ export type PostExamsByIdExportQti3ZipResponses = {
1074
+ /**
1075
+ * URL to download the exported QTI ZIP package.
1076
+ */
1077
+ 200: {
1078
+ /**
1079
+ * URL to download the exported QTI ZIP package.
1080
+ */
1081
+ url: string;
1082
+ };
1083
+ };
1084
+ export type PostExamsByIdExportQti3ZipResponse = PostExamsByIdExportQti3ZipResponses[keyof PostExamsByIdExportQti3ZipResponses];
1085
+ export type PostExamsByIdExportQti21ZipData = {
1086
+ body?: never;
1087
+ path: {
1088
+ id: string;
1089
+ };
1090
+ query?: never;
1091
+ url: '/exams/{id}/export/qti21-zip';
1092
+ };
1093
+ export type PostExamsByIdExportQti21ZipResponses = {
1094
+ /**
1095
+ * URL to download the exported QTI ZIP package.
1096
+ */
1097
+ 200: {
1098
+ /**
1099
+ * URL to download the exported QTI ZIP package.
1100
+ */
1101
+ url: string;
1102
+ };
1103
+ };
1104
+ export type PostExamsByIdExportQti21ZipResponse = PostExamsByIdExportQti21ZipResponses[keyof PostExamsByIdExportQti21ZipResponses];
1105
+ export type GetExamsData = {
1106
+ body?: never;
1107
+ path?: never;
1108
+ query?: {
1109
+ /**
1110
+ * Optional filter by folder ID, e.g. `folder_1234`.
1111
+ */
1112
+ folder?: string;
1113
+ };
1114
+ url: '/exams';
1115
+ };
1116
+ export type PostExamsData = {
1117
+ body?: {
1118
+ name: string;
1119
+ sourceMaterialIds?: Array<string> | null;
1120
+ context?: string | null;
1121
+ studentLevel?: string | null;
1122
+ subject?: string | null;
1123
+ language?: string | null;
1124
+ taxonomyId?: string | null;
1125
+ intendedDuration?: unknown | null;
1126
+ allowedGenerationQuestionTypes?: Array<string> | null;
1127
+ permissions?: Array<{
1128
+ actor: string;
1129
+ role: 'owner' | 'manager' | 'editor' | 'viewer' | 'participant';
1130
+ }> | null;
1131
+ };
1132
+ path?: never;
1133
+ query?: never;
1134
+ url: '/exams';
1135
+ };
1136
+ export type PostExamsImportData = {
1137
+ body?: {
1138
+ name: string;
1139
+ sourceMaterialIds?: Array<string>;
1140
+ };
1141
+ path?: never;
1142
+ query?: never;
1143
+ url: '/exams/import';
1144
+ };
1145
+ export type DeleteExamsByIdData = {
1146
+ body?: never;
1147
+ path: {
1148
+ id: string;
1149
+ };
1150
+ query?: never;
1151
+ url: '/exams/{id}';
1152
+ };
1153
+ export type GetExamsByIdData = {
1154
+ body?: never;
1155
+ path: {
1156
+ id: string;
1157
+ };
1158
+ query?: never;
1159
+ url: '/exams/{id}';
1160
+ };
1161
+ export type PostExamsByIdData = {
1162
+ body?: never;
1163
+ path: {
1164
+ id: string;
1165
+ };
1166
+ query?: never;
1167
+ url: '/exams/{id}';
1168
+ };
1169
+ export type PostExamsByIdDuplicateData = {
1170
+ body?: {
1171
+ name: string;
1172
+ includeSessions?: boolean;
1173
+ };
1174
+ path: {
1175
+ id: string;
1176
+ };
1177
+ query?: never;
1178
+ url: '/exams/{id}/duplicate';
1179
+ };
1180
+ export type PostExamsByIdPrintData = {
1181
+ body?: never;
1182
+ path: {
1183
+ id: string;
1184
+ };
1185
+ query?: never;
1186
+ url: '/exams/{id}/print';
1187
+ };
1188
+ export type PostExamsByIdGenerateData = {
1189
+ body?: never;
1190
+ path: {
1191
+ id: string;
1192
+ };
1193
+ query?: never;
1194
+ url: '/exams/{id}/generate';
1195
+ };
1196
+ export type PostExamsByIdGenerateCancelData = {
1197
+ body?: never;
1198
+ path: {
1199
+ id: string;
1200
+ };
1201
+ query?: never;
1202
+ url: '/exams/{id}/generate/cancel';
1203
+ };
1204
+ export type GetExamsByIdContextSuggestionsData = {
1205
+ body?: never;
1206
+ path: {
1207
+ id: string;
1208
+ };
1209
+ query?: never;
1210
+ url: '/exams/{id}/context-suggestions';
1211
+ };
1212
+ export type GetPracticeSpacesData = {
1213
+ body?: never;
1214
+ path?: never;
1215
+ query?: {
1216
+ /**
1217
+ * Optional filter by folder ID, e.g. `folder_1234`.
1218
+ */
1219
+ folder?: string;
1220
+ };
1221
+ url: '/practice-spaces';
1222
+ };
1223
+ export type PostPracticeSpacesData = {
1224
+ body?: {
1225
+ name: string;
1226
+ sourceMaterialIds?: Array<string>;
1227
+ masteryTopics?: Array<{
1228
+ id: string;
1229
+ name: string;
1230
+ }>;
1231
+ settings?: {
1232
+ taxonomyId?: string | null;
1233
+ duration?: number | null;
1234
+ intendedDuration?: unknown | null;
1235
+ enforceOrder?: boolean | null;
1236
+ enforceTimeLimit?: boolean | null;
1237
+ requirePasscode?: boolean | null;
1238
+ passcode?: string | null;
1239
+ showPoints?: boolean | null;
1240
+ showFeedback?: boolean | null;
1241
+ showTableOfContents?: boolean | null;
1242
+ context?: string | null;
1243
+ studentLevel?: string | null;
1244
+ subject?: string | null;
1245
+ language?: string | null;
1246
+ feedbackPerQuestion?: boolean | null;
1247
+ feedbackOverall?: boolean | null;
1248
+ feedbackAiInstructions?: string | null;
1249
+ allowedGenerationQuestionTypes?: Array<string> | null;
1250
+ useSafeExamBrowser?: boolean | null;
1251
+ gradingScheme?: {
1252
+ type: 'points' | 'percentage' | 'out-of-10' | 'custom' | 'custom:letters' | 'custom:pass-fail' | 'custom:proficiency';
1253
+ ranges?: Array<{
1254
+ label?: string | null;
1255
+ startPercentage?: number | null;
1256
+ color?: string | null;
1257
+ }> | null;
1258
+ } | null;
1259
+ 'safeExamBrowser.showInstallLink'?: boolean | null;
1260
+ 'safeExamBrowser.allowQuit'?: boolean | null;
1261
+ 'safeExamBrowser.showTime'?: boolean | null;
1262
+ 'safeExamBrowser.allowWlan'?: boolean | null;
1263
+ 'safeExamBrowser.allowSpellCheck'?: boolean | null;
1264
+ showHints?: boolean;
1265
+ [key: string]: unknown | string | null | number | null | unknown | null | boolean | null | boolean | null | boolean | null | string | null | boolean | null | boolean | null | boolean | null | string | null | string | null | string | null | string | null | boolean | null | boolean | null | string | null | Array<string> | null | boolean | null | {
1266
+ type: 'points' | 'percentage' | 'out-of-10' | 'custom' | 'custom:letters' | 'custom:pass-fail' | 'custom:proficiency';
1267
+ ranges?: Array<{
1268
+ label?: string | null;
1269
+ startPercentage?: number | null;
1270
+ color?: string | null;
1271
+ }> | null;
1272
+ } | null | boolean | null | boolean | null | boolean | null | boolean | null | boolean | null | boolean | undefined;
1273
+ };
1274
+ folder?: string | null;
1275
+ permissions?: Array<{
1276
+ actor: string;
1277
+ role: 'owner' | 'manager' | 'editor' | 'viewer' | 'participant';
1278
+ }> | null;
1279
+ studentNotes?: string | null;
1280
+ };
1281
+ path?: never;
1282
+ query?: never;
1283
+ url: '/practice-spaces';
1284
+ };
1285
+ export type DeletePracticeSpacesByIdData = {
1286
+ body?: never;
1287
+ path: {
1288
+ id: string;
1289
+ };
1290
+ query?: never;
1291
+ url: '/practice-spaces/{id}';
1292
+ };
1293
+ export type GetPracticeSpacesByIdData = {
1294
+ body?: never;
1295
+ path: {
1296
+ id: string;
1297
+ };
1298
+ query?: never;
1299
+ url: '/practice-spaces/{id}';
1300
+ };
1301
+ export type PostPracticeSpacesByIdData = {
1302
+ body?: {
1303
+ name?: string;
1304
+ settings?: {
1305
+ taxonomyId?: string | null;
1306
+ duration?: number | null;
1307
+ intendedDuration?: unknown | null;
1308
+ enforceOrder?: boolean | null;
1309
+ enforceTimeLimit?: boolean | null;
1310
+ requirePasscode?: boolean | null;
1311
+ passcode?: string | null;
1312
+ showPoints?: boolean | null;
1313
+ showFeedback?: boolean | null;
1314
+ showTableOfContents?: boolean | null;
1315
+ context?: string | null;
1316
+ studentLevel?: string | null;
1317
+ subject?: string | null;
1318
+ language?: string | null;
1319
+ feedbackPerQuestion?: boolean | null;
1320
+ feedbackOverall?: boolean | null;
1321
+ feedbackAiInstructions?: string | null;
1322
+ allowedGenerationQuestionTypes?: Array<string> | null;
1323
+ useSafeExamBrowser?: boolean | null;
1324
+ gradingScheme?: {
1325
+ type: 'points' | 'percentage' | 'out-of-10' | 'custom' | 'custom:letters' | 'custom:pass-fail' | 'custom:proficiency';
1326
+ ranges?: Array<{
1327
+ label?: string | null;
1328
+ startPercentage?: number | null;
1329
+ color?: string | null;
1330
+ }> | null;
1331
+ } | null;
1332
+ 'safeExamBrowser.showInstallLink'?: boolean | null;
1333
+ 'safeExamBrowser.allowQuit'?: boolean | null;
1334
+ 'safeExamBrowser.showTime'?: boolean | null;
1335
+ 'safeExamBrowser.allowWlan'?: boolean | null;
1336
+ 'safeExamBrowser.allowSpellCheck'?: boolean | null;
1337
+ showHints?: boolean;
1338
+ [key: string]: unknown | string | null | number | null | unknown | null | boolean | null | boolean | null | boolean | null | string | null | boolean | null | boolean | null | boolean | null | string | null | string | null | string | null | string | null | boolean | null | boolean | null | string | null | Array<string> | null | boolean | null | {
1339
+ type: 'points' | 'percentage' | 'out-of-10' | 'custom' | 'custom:letters' | 'custom:pass-fail' | 'custom:proficiency';
1340
+ ranges?: Array<{
1341
+ label?: string | null;
1342
+ startPercentage?: number | null;
1343
+ color?: string | null;
1344
+ }> | null;
1345
+ } | null | boolean | null | boolean | null | boolean | null | boolean | null | boolean | null | boolean | undefined;
1346
+ };
1347
+ folder?: string | null;
1348
+ sourceMaterialIds?: Array<string>;
1349
+ masteryTopics?: Array<{
1350
+ id: string;
1351
+ name: string;
1352
+ }>;
1353
+ studentNotes?: string | null;
1354
+ };
1355
+ path: {
1356
+ id: string;
1357
+ };
1358
+ query?: never;
1359
+ url: '/practice-spaces/{id}';
1360
+ };
1361
+ export type GetPracticeSpacesByIdQuestionsPreviewData = {
1362
+ body?: never;
1363
+ path: {
1364
+ id: string;
1365
+ };
1366
+ query?: never;
1367
+ url: '/practice-spaces/{id}/questions-preview';
1368
+ };
1369
+ export type GetSourceMaterialsData = {
1370
+ body?: never;
1371
+ path?: never;
1372
+ query?: {
1373
+ /**
1374
+ * Filter by externalId
1375
+ */
1376
+ externalId?: string;
1377
+ };
1378
+ url: '/source-materials';
1379
+ };
1380
+ export type GetSourceMaterialsResponses = {
1381
+ 200: Array<{
1382
+ org: string;
1383
+ id: string;
1384
+ type?: string;
1385
+ createdBy: string;
1386
+ createdAt?: Date;
1387
+ updatedAt?: Date;
1388
+ deletedAt?: Date;
1389
+ name?: string;
1390
+ originalSource: {
1391
+ url: string;
1392
+ type?: string;
1393
+ name?: string;
1394
+ size?: number;
1395
+ contentType?: string;
1396
+ expires?: string;
1397
+ [key: string]: unknown | string | number | undefined;
1398
+ };
1399
+ convertedSourceV2?: {
1400
+ url: string;
1401
+ type?: string;
1402
+ name?: string;
1403
+ size?: number;
1404
+ contentType?: string;
1405
+ expires?: string;
1406
+ [key: string]: unknown | string | number | undefined;
1407
+ };
1408
+ geminiSource?: {
1409
+ url: string;
1410
+ type?: string;
1411
+ name?: string;
1412
+ size?: number;
1413
+ contentType?: string;
1414
+ expires?: string;
1415
+ [key: string]: unknown | string | number | undefined;
1416
+ };
1417
+ externalId?: string;
1418
+ parentSourceMaterialId?: string;
1419
+ cacheName?: string;
1420
+ summary?: string;
1421
+ factsCount?: number;
1422
+ processingStatus?: 'pending' | 'converting' | 'summarizing' | 'extracting_topics' | 'extracting_facts' | 'completed' | 'failed';
1423
+ numberOfPages?: number;
1424
+ chapterMarkers?: Array<{
1425
+ title: string;
1426
+ startPage: number;
1427
+ endPage: number;
1428
+ }>;
1429
+ topics?: unknown;
1430
+ }>;
1431
+ };
1432
+ export type GetSourceMaterialsResponse = GetSourceMaterialsResponses[keyof GetSourceMaterialsResponses];
1433
+ export type PostSourceMaterialsData = {
1434
+ body?: {
1435
+ url: string;
1436
+ type?: string;
1437
+ name?: string;
1438
+ size?: number;
1439
+ contentType?: string;
1440
+ expires?: string;
1441
+ /**
1442
+ * An optional external identifier for the source material.
1443
+ */
1444
+ externalId?: string;
1445
+ [key: string]: unknown | string | number | undefined;
1446
+ };
1447
+ path?: never;
1448
+ query?: never;
1449
+ url: '/source-materials';
1450
+ };
1451
+ export type PostSourceMaterialsResponses = {
1452
+ 201: {
1453
+ org: string;
1454
+ id: string;
1455
+ type?: string;
1456
+ createdBy: string;
1457
+ createdAt?: Date;
1458
+ updatedAt?: Date;
1459
+ deletedAt?: Date;
1460
+ name?: string;
1461
+ originalSource: {
1462
+ url: string;
1463
+ type?: string;
1464
+ name?: string;
1465
+ size?: number;
1466
+ contentType?: string;
1467
+ expires?: string;
1468
+ [key: string]: unknown | string | number | undefined;
1469
+ };
1470
+ convertedSourceV2?: {
1471
+ url: string;
1472
+ type?: string;
1473
+ name?: string;
1474
+ size?: number;
1475
+ contentType?: string;
1476
+ expires?: string;
1477
+ [key: string]: unknown | string | number | undefined;
1478
+ };
1479
+ geminiSource?: {
1480
+ url: string;
1481
+ type?: string;
1482
+ name?: string;
1483
+ size?: number;
1484
+ contentType?: string;
1485
+ expires?: string;
1486
+ [key: string]: unknown | string | number | undefined;
1487
+ };
1488
+ externalId?: string;
1489
+ parentSourceMaterialId?: string;
1490
+ cacheName?: string;
1491
+ summary?: string;
1492
+ factsCount?: number;
1493
+ processingStatus?: 'pending' | 'converting' | 'summarizing' | 'extracting_topics' | 'extracting_facts' | 'completed' | 'failed';
1494
+ numberOfPages?: number;
1495
+ chapterMarkers?: Array<{
1496
+ title: string;
1497
+ startPage: number;
1498
+ endPage: number;
1499
+ }>;
1500
+ topics?: unknown;
1501
+ };
1502
+ };
1503
+ export type PostSourceMaterialsResponse = PostSourceMaterialsResponses[keyof PostSourceMaterialsResponses];
1504
+ export type DeleteSourceMaterialsByIdData = {
1505
+ body?: never;
1506
+ path: {
1507
+ id: string;
1508
+ };
1509
+ query?: never;
1510
+ url: '/source-materials/{id}';
1511
+ };
1512
+ export type GetSourceMaterialsByIdData = {
1513
+ body?: never;
1514
+ path: {
1515
+ id: string;
1516
+ };
1517
+ query?: never;
1518
+ url: '/source-materials/{id}';
1519
+ };
1520
+ export type GetSourceMaterialsByIdResponses = {
1521
+ 200: {
1522
+ org: string;
1523
+ id: string;
1524
+ type?: string;
1525
+ createdBy: string;
1526
+ createdAt?: Date;
1527
+ updatedAt?: Date;
1528
+ deletedAt?: Date;
1529
+ name?: string;
1530
+ originalSource: {
1531
+ url: string;
1532
+ type?: string;
1533
+ name?: string;
1534
+ size?: number;
1535
+ contentType?: string;
1536
+ expires?: string;
1537
+ [key: string]: unknown | string | number | undefined;
1538
+ };
1539
+ convertedSourceV2?: {
1540
+ url: string;
1541
+ type?: string;
1542
+ name?: string;
1543
+ size?: number;
1544
+ contentType?: string;
1545
+ expires?: string;
1546
+ [key: string]: unknown | string | number | undefined;
1547
+ };
1548
+ geminiSource?: {
1549
+ url: string;
1550
+ type?: string;
1551
+ name?: string;
1552
+ size?: number;
1553
+ contentType?: string;
1554
+ expires?: string;
1555
+ [key: string]: unknown | string | number | undefined;
1556
+ };
1557
+ externalId?: string;
1558
+ parentSourceMaterialId?: string;
1559
+ cacheName?: string;
1560
+ summary?: string;
1561
+ factsCount?: number;
1562
+ processingStatus?: 'pending' | 'converting' | 'summarizing' | 'extracting_topics' | 'extracting_facts' | 'completed' | 'failed';
1563
+ numberOfPages?: number;
1564
+ chapterMarkers?: Array<{
1565
+ title: string;
1566
+ startPage: number;
1567
+ endPage: number;
1568
+ }>;
1569
+ topics?: unknown;
1570
+ };
1571
+ };
1572
+ export type GetSourceMaterialsByIdResponse = GetSourceMaterialsByIdResponses[keyof GetSourceMaterialsByIdResponses];
1573
+ export type PatchSourceMaterialsByIdData = {
1574
+ body?: {
1575
+ /**
1576
+ * The new name of the source material.
1577
+ */
1578
+ name?: string;
1579
+ };
1580
+ path: {
1581
+ id: string;
1582
+ };
1583
+ query?: never;
1584
+ url: '/source-materials/{id}';
1585
+ };
1586
+ export type PostSourceMaterialsByIdSliceData = {
1587
+ body?: {
1588
+ /**
1589
+ * Starting page number (1-based)
1590
+ */
1591
+ startPage: number;
1592
+ /**
1593
+ * Ending page number, inclusive (1-based)
1594
+ */
1595
+ endPage: number;
1596
+ /**
1597
+ * Optional name for the new source material
1598
+ */
1599
+ name?: string;
1600
+ };
1601
+ path: {
1602
+ id: string;
1603
+ };
1604
+ query?: never;
1605
+ url: '/source-materials/{id}/slice';
1606
+ };
1607
+ export type PostSourceMaterialsByIdSliceResponses = {
1608
+ 201: {
1609
+ org: string;
1610
+ id: string;
1611
+ type?: string;
1612
+ createdBy: string;
1613
+ createdAt?: Date;
1614
+ updatedAt?: Date;
1615
+ deletedAt?: Date;
1616
+ name?: string;
1617
+ originalSource: {
1618
+ url: string;
1619
+ type?: string;
1620
+ name?: string;
1621
+ size?: number;
1622
+ contentType?: string;
1623
+ expires?: string;
1624
+ [key: string]: unknown | string | number | undefined;
1625
+ };
1626
+ convertedSourceV2?: {
1627
+ url: string;
1628
+ type?: string;
1629
+ name?: string;
1630
+ size?: number;
1631
+ contentType?: string;
1632
+ expires?: string;
1633
+ [key: string]: unknown | string | number | undefined;
1634
+ };
1635
+ geminiSource?: {
1636
+ url: string;
1637
+ type?: string;
1638
+ name?: string;
1639
+ size?: number;
1640
+ contentType?: string;
1641
+ expires?: string;
1642
+ [key: string]: unknown | string | number | undefined;
1643
+ };
1644
+ externalId?: string;
1645
+ parentSourceMaterialId?: string;
1646
+ cacheName?: string;
1647
+ summary?: string;
1648
+ factsCount?: number;
1649
+ processingStatus?: 'pending' | 'converting' | 'summarizing' | 'extracting_topics' | 'extracting_facts' | 'completed' | 'failed';
1650
+ numberOfPages?: number;
1651
+ chapterMarkers?: Array<{
1652
+ title: string;
1653
+ startPage: number;
1654
+ endPage: number;
1655
+ }>;
1656
+ topics?: unknown;
1657
+ };
1658
+ };
1659
+ export type PostSourceMaterialsByIdSliceResponse = PostSourceMaterialsByIdSliceResponses[keyof PostSourceMaterialsByIdSliceResponses];
1660
+ export type GetFoldersData = {
1661
+ body?: never;
1662
+ path?: never;
1663
+ query?: never;
1664
+ url: '/folders';
1665
+ };
1666
+ export type PostFoldersData = {
1667
+ body?: {
1668
+ name: string;
1669
+ };
1670
+ path?: never;
1671
+ query?: never;
1672
+ url: '/folders';
1673
+ };
1674
+ export type DeleteFoldersByIdData = {
1675
+ body?: never;
1676
+ path: {
1677
+ id: string;
1678
+ };
1679
+ query?: never;
1680
+ url: '/folders/{id}';
1681
+ };
1682
+ export type PostFoldersByIdData = {
1683
+ body?: {
1684
+ name: string;
1685
+ };
1686
+ path: {
1687
+ id: string;
1688
+ };
1689
+ query?: never;
1690
+ url: '/folders/{id}';
1691
+ };
1692
+ export type GetQuestionBankData = {
1693
+ body?: never;
1694
+ path?: never;
1695
+ query?: never;
1696
+ url: '/question-bank';
1697
+ };
1698
+ export type PostQuestionBankData = {
1699
+ body?: {
1700
+ question: {
1701
+ type: string;
1702
+ title?: string | null;
1703
+ description?: string | null;
1704
+ settings: {
1705
+ [key: string]: unknown;
1706
+ };
1707
+ scoringCriteria?: Array<{
1708
+ id?: string;
1709
+ description?: string | null;
1710
+ points?: number | null;
1711
+ }> | null;
1712
+ tags?: Array<string> | null;
1713
+ metadata?: {
1714
+ [key: string]: string | number | boolean | null;
1715
+ } | null;
1716
+ questionBankItemId?: string | null;
1717
+ traceIds?: Array<string> | null;
1718
+ [key: string]: unknown | string | string | null | string | null | {
1719
+ [key: string]: unknown;
1720
+ } | Array<{
1721
+ id?: string;
1722
+ description?: string | null;
1723
+ points?: number | null;
1724
+ }> | null | Array<string> | null | {
1725
+ [key: string]: string | number | boolean | null;
1726
+ } | null | string | null | Array<string> | null | undefined;
1727
+ };
1728
+ };
1729
+ path?: never;
1730
+ query?: never;
1731
+ url: '/question-bank';
1732
+ };
1733
+ export type DeleteQuestionBankByIdData = {
1734
+ body?: never;
1735
+ path: {
1736
+ id: string;
1737
+ };
1738
+ query?: never;
1739
+ url: '/question-bank/{id}';
1740
+ };
1741
+ export type PatchQuestionBankByIdData = {
1742
+ body?: {
1743
+ question: {
1744
+ type: string;
1745
+ title?: string | null;
1746
+ description?: string | null;
1747
+ settings: {
1748
+ [key: string]: unknown;
1749
+ };
1750
+ scoringCriteria?: Array<{
1751
+ id?: string;
1752
+ description?: string | null;
1753
+ points?: number | null;
1754
+ }> | null;
1755
+ tags?: Array<string> | null;
1756
+ metadata?: {
1757
+ [key: string]: string | number | boolean | null;
1758
+ } | null;
1759
+ questionBankItemId?: string | null;
1760
+ traceIds?: Array<string> | null;
1761
+ [key: string]: unknown | string | string | null | string | null | {
1762
+ [key: string]: unknown;
1763
+ } | Array<{
1764
+ id?: string;
1765
+ description?: string | null;
1766
+ points?: number | null;
1767
+ }> | null | Array<string> | null | {
1768
+ [key: string]: string | number | boolean | null;
1769
+ } | null | string | null | Array<string> | null | undefined;
1770
+ };
1771
+ };
1772
+ path: {
1773
+ id: string;
1774
+ };
1775
+ query?: never;
1776
+ url: '/question-bank/{id}';
1777
+ };