@whop/sdk 0.0.2 → 0.0.3

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 (145) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/client.d.mts +23 -8
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +23 -8
  5. package/client.d.ts.map +1 -1
  6. package/client.js +16 -1
  7. package/client.js.map +1 -1
  8. package/client.mjs +16 -1
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/checkout-configurations.d.mts +76 -2
  12. package/resources/checkout-configurations.d.mts.map +1 -1
  13. package/resources/checkout-configurations.d.ts +76 -2
  14. package/resources/checkout-configurations.d.ts.map +1 -1
  15. package/resources/checkout-configurations.js +2 -0
  16. package/resources/checkout-configurations.js.map +1 -1
  17. package/resources/checkout-configurations.mjs +2 -0
  18. package/resources/checkout-configurations.mjs.map +1 -1
  19. package/resources/course-chapters.d.mts +185 -0
  20. package/resources/course-chapters.d.mts.map +1 -0
  21. package/resources/course-chapters.d.ts +185 -0
  22. package/resources/course-chapters.d.ts.map +1 -0
  23. package/resources/course-chapters.js +103 -0
  24. package/resources/course-chapters.js.map +1 -0
  25. package/resources/course-chapters.mjs +99 -0
  26. package/resources/course-chapters.mjs.map +1 -0
  27. package/resources/course-lessons.d.mts +523 -0
  28. package/resources/course-lessons.d.mts.map +1 -0
  29. package/resources/course-lessons.d.ts +523 -0
  30. package/resources/course-lessons.d.ts.map +1 -0
  31. package/resources/course-lessons.js +101 -0
  32. package/resources/course-lessons.js.map +1 -0
  33. package/resources/course-lessons.mjs +97 -0
  34. package/resources/course-lessons.mjs.map +1 -0
  35. package/resources/courses.d.mts +465 -0
  36. package/resources/courses.d.mts.map +1 -0
  37. package/resources/courses.d.ts +465 -0
  38. package/resources/courses.d.ts.map +1 -0
  39. package/resources/courses.js +98 -0
  40. package/resources/courses.js.map +1 -0
  41. package/resources/courses.mjs +94 -0
  42. package/resources/courses.mjs.map +1 -0
  43. package/resources/experiences.d.mts +27 -1
  44. package/resources/experiences.d.mts.map +1 -1
  45. package/resources/experiences.d.ts +27 -1
  46. package/resources/experiences.d.ts.map +1 -1
  47. package/resources/experiences.js +22 -0
  48. package/resources/experiences.js.map +1 -1
  49. package/resources/experiences.mjs +22 -0
  50. package/resources/experiences.mjs.map +1 -1
  51. package/resources/forum-posts.d.mts +56 -1
  52. package/resources/forum-posts.d.mts.map +1 -1
  53. package/resources/forum-posts.d.ts +56 -1
  54. package/resources/forum-posts.d.ts.map +1 -1
  55. package/resources/forum-posts.js +11 -0
  56. package/resources/forum-posts.js.map +1 -1
  57. package/resources/forum-posts.mjs +11 -0
  58. package/resources/forum-posts.mjs.map +1 -1
  59. package/resources/index.d.mts +9 -4
  60. package/resources/index.d.mts.map +1 -1
  61. package/resources/index.d.ts +9 -4
  62. package/resources/index.d.ts.map +1 -1
  63. package/resources/index.js +11 -1
  64. package/resources/index.js.map +1 -1
  65. package/resources/index.mjs +5 -0
  66. package/resources/index.mjs.map +1 -1
  67. package/resources/ledger-accounts.d.mts +1 -1
  68. package/resources/ledger-accounts.d.mts.map +1 -1
  69. package/resources/ledger-accounts.d.ts +1 -1
  70. package/resources/ledger-accounts.d.ts.map +1 -1
  71. package/resources/members.d.mts +4 -0
  72. package/resources/members.d.mts.map +1 -1
  73. package/resources/members.d.ts +4 -0
  74. package/resources/members.d.ts.map +1 -1
  75. package/resources/memberships.d.mts +26 -5
  76. package/resources/memberships.d.mts.map +1 -1
  77. package/resources/memberships.d.ts +26 -5
  78. package/resources/memberships.d.ts.map +1 -1
  79. package/resources/memberships.js +1 -1
  80. package/resources/memberships.js.map +1 -1
  81. package/resources/memberships.mjs +1 -1
  82. package/resources/memberships.mjs.map +1 -1
  83. package/resources/messages.d.mts +38 -1
  84. package/resources/messages.d.mts.map +1 -1
  85. package/resources/messages.d.ts +38 -1
  86. package/resources/messages.d.ts.map +1 -1
  87. package/resources/messages.js +6 -0
  88. package/resources/messages.js.map +1 -1
  89. package/resources/messages.mjs +6 -0
  90. package/resources/messages.mjs.map +1 -1
  91. package/resources/payments.d.mts +28 -13
  92. package/resources/payments.d.mts.map +1 -1
  93. package/resources/payments.d.ts +28 -13
  94. package/resources/payments.d.ts.map +1 -1
  95. package/resources/plans.d.mts +49 -1
  96. package/resources/plans.d.mts.map +1 -1
  97. package/resources/plans.d.ts +49 -1
  98. package/resources/plans.d.ts.map +1 -1
  99. package/resources/products.d.mts +17 -25
  100. package/resources/products.d.mts.map +1 -1
  101. package/resources/products.d.ts +17 -25
  102. package/resources/products.d.ts.map +1 -1
  103. package/resources/promo-codes.d.mts +394 -0
  104. package/resources/promo-codes.d.mts.map +1 -0
  105. package/resources/promo-codes.d.ts +394 -0
  106. package/resources/promo-codes.d.ts.map +1 -0
  107. package/resources/promo-codes.js +91 -0
  108. package/resources/promo-codes.js.map +1 -0
  109. package/resources/promo-codes.mjs +87 -0
  110. package/resources/promo-codes.mjs.map +1 -0
  111. package/resources/reviews.d.mts +277 -0
  112. package/resources/reviews.d.mts.map +1 -0
  113. package/resources/reviews.d.ts +277 -0
  114. package/resources/reviews.d.ts.map +1 -0
  115. package/resources/reviews.js +23 -0
  116. package/resources/reviews.js.map +1 -0
  117. package/resources/reviews.mjs +19 -0
  118. package/resources/reviews.mjs.map +1 -0
  119. package/resources/shared.d.mts +70 -14
  120. package/resources/shared.d.mts.map +1 -1
  121. package/resources/shared.d.ts +70 -14
  122. package/resources/shared.d.ts.map +1 -1
  123. package/src/client.ts +134 -1
  124. package/src/resources/checkout-configurations.ts +91 -2
  125. package/src/resources/course-chapters.ts +236 -0
  126. package/src/resources/course-lessons.ts +646 -0
  127. package/src/resources/courses.ts +594 -0
  128. package/src/resources/experiences.ts +35 -0
  129. package/src/resources/forum-posts.ts +71 -0
  130. package/src/resources/index.ts +59 -0
  131. package/src/resources/ledger-accounts.ts +13 -1
  132. package/src/resources/members.ts +5 -0
  133. package/src/resources/memberships.ts +31 -6
  134. package/src/resources/messages.ts +50 -0
  135. package/src/resources/payments.ts +139 -19
  136. package/src/resources/plans.ts +60 -1
  137. package/src/resources/products.ts +20 -29
  138. package/src/resources/promo-codes.ts +490 -0
  139. package/src/resources/reviews.ts +348 -0
  140. package/src/resources/shared.ts +80 -14
  141. package/src/version.ts +1 -1
  142. package/version.d.mts +1 -1
  143. package/version.d.ts +1 -1
  144. package/version.js +1 -1
  145. package/version.mjs +1 -1
@@ -0,0 +1,646 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import * as CourseLessonsAPI from './course-lessons';
5
+ import { APIPromise } from '../core/api-promise';
6
+ import { CursorPage, type CursorPageParams, PagePromise } from '../core/pagination';
7
+ import { RequestOptions } from '../internal/request-options';
8
+ import { path } from '../internal/utils/path';
9
+
10
+ export class CourseLessons extends APIResource {
11
+ /**
12
+ * Creates a new course lesson
13
+ *
14
+ * Required permissions:
15
+ *
16
+ * - `courses:update`
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const lesson = await client.courseLessons.create({
21
+ * chapter_id: 'chap_xxxxxxxxxxxxx',
22
+ * lesson_type: 'text',
23
+ * });
24
+ * ```
25
+ */
26
+ create(body: CourseLessonCreateParams, options?: RequestOptions): APIPromise<Lesson> {
27
+ return this._client.post('/course_lessons', { body, ...options });
28
+ }
29
+
30
+ /**
31
+ * Retrieves a course lesson by ID
32
+ *
33
+ * Required permissions:
34
+ *
35
+ * - `courses:read`
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const lesson = await client.courseLessons.retrieve(
40
+ * 'lesn_xxxxxxxxxxxxx',
41
+ * );
42
+ * ```
43
+ */
44
+ retrieve(id: string, options?: RequestOptions): APIPromise<Lesson> {
45
+ return this._client.get(path`/course_lessons/${id}`, options);
46
+ }
47
+
48
+ /**
49
+ * Updates a course lesson
50
+ *
51
+ * Required permissions:
52
+ *
53
+ * - `courses:update`
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const lesson = await client.courseLessons.update(
58
+ * 'lesn_xxxxxxxxxxxxx',
59
+ * );
60
+ * ```
61
+ */
62
+ update(
63
+ id: string,
64
+ body: CourseLessonUpdateParams | null | undefined = {},
65
+ options?: RequestOptions,
66
+ ): APIPromise<Lesson> {
67
+ return this._client.patch(path`/course_lessons/${id}`, { body, ...options });
68
+ }
69
+
70
+ /**
71
+ * Lists lessons for a course or chapter
72
+ *
73
+ * Required permissions:
74
+ *
75
+ * - `courses:read`
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * // Automatically fetches more pages as needed.
80
+ * for await (const courseLessonListResponse of client.courseLessons.list()) {
81
+ * // ...
82
+ * }
83
+ * ```
84
+ */
85
+ list(
86
+ query: CourseLessonListParams | null | undefined = {},
87
+ options?: RequestOptions,
88
+ ): PagePromise<CourseLessonListResponsesCursorPage, CourseLessonListResponse> {
89
+ return this._client.getAPIList('/course_lessons', CursorPage<CourseLessonListResponse>, {
90
+ query,
91
+ ...options,
92
+ });
93
+ }
94
+
95
+ /**
96
+ * Deletes a course lesson
97
+ *
98
+ * Required permissions:
99
+ *
100
+ * - `courses:update`
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * const courseLesson = await client.courseLessons.delete(
105
+ * 'lesn_xxxxxxxxxxxxx',
106
+ * );
107
+ * ```
108
+ */
109
+ delete(id: string, options?: RequestOptions): APIPromise<CourseLessonDeleteResponse> {
110
+ return this._client.delete(path`/course_lessons/${id}`, options);
111
+ }
112
+ }
113
+
114
+ export type CourseLessonListResponsesCursorPage = CursorPage<CourseLessonListResponse>;
115
+
116
+ /**
117
+ * The available types for an assessment question
118
+ */
119
+ export type AssessmentQuestionTypes = 'short_answer' | 'true_false' | 'multiple_choice' | 'multiple_select';
120
+
121
+ /**
122
+ * A lesson from the courses app
123
+ */
124
+ export interface Lesson {
125
+ /**
126
+ * The ID of the lesson
127
+ */
128
+ id: string;
129
+
130
+ /**
131
+ * Assessment questions for quiz/knowledge check lessons
132
+ */
133
+ assessment_questions: Array<Lesson.AssessmentQuestion>;
134
+
135
+ /**
136
+ * The attached files in this lesson as a flat array
137
+ */
138
+ attachments: Array<Lesson.Attachment>;
139
+
140
+ /**
141
+ * The content of the lesson
142
+ */
143
+ content: string | null;
144
+
145
+ /**
146
+ * Number of days from course start until the lesson is unlocked
147
+ */
148
+ days_from_course_start_until_unlock: number | null;
149
+
150
+ /**
151
+ * The type of the lesson (text, video, pdf, multi, quiz, knowledge_check)
152
+ */
153
+ lesson_type: LessonTypes;
154
+
155
+ /**
156
+ * The main PDF file for this lesson
157
+ */
158
+ main_pdf: Lesson.MainPdf | null;
159
+
160
+ /**
161
+ * The order of the lesson within its chapter
162
+ */
163
+ order: number;
164
+
165
+ /**
166
+ * The title of the lesson
167
+ */
168
+ title: string;
169
+
170
+ /**
171
+ * The associated Mux asset for video lessons
172
+ */
173
+ video_asset: Lesson.VideoAsset | null;
174
+
175
+ /**
176
+ * The visibility of the lesson. Determines how / whether this lesson is visible to
177
+ * users.
178
+ */
179
+ visibility: LessonVisibilities;
180
+ }
181
+
182
+ export namespace Lesson {
183
+ /**
184
+ * An assessment question in a course quiz or knowledge check
185
+ */
186
+ export interface AssessmentQuestion {
187
+ /**
188
+ * The ID of the assessment question
189
+ */
190
+ id: string;
191
+
192
+ /**
193
+ * The correct answer for the question. Used for short answer questions
194
+ */
195
+ correct_answer: string;
196
+
197
+ /**
198
+ * When the question was created
199
+ */
200
+ created_at: string;
201
+
202
+ /**
203
+ * Optional image attachment for the question
204
+ */
205
+ image: AssessmentQuestion.Image | null;
206
+
207
+ /**
208
+ * The answer options for multiple choice/select questions
209
+ */
210
+ options: Array<AssessmentQuestion.Option>;
211
+
212
+ /**
213
+ * The order of the question within its lesson
214
+ */
215
+ order: number;
216
+
217
+ /**
218
+ * The text of the question
219
+ */
220
+ question_text: string;
221
+
222
+ /**
223
+ * The type of the question
224
+ */
225
+ question_type: CourseLessonsAPI.AssessmentQuestionTypes;
226
+ }
227
+
228
+ export namespace AssessmentQuestion {
229
+ /**
230
+ * Optional image attachment for the question
231
+ */
232
+ export interface Image {
233
+ /**
234
+ * The ID of the attachment
235
+ */
236
+ id: string;
237
+
238
+ /**
239
+ * The attachment's content type (e.g., image/jpg, video/mp4)
240
+ */
241
+ content_type: string | null;
242
+
243
+ /**
244
+ * The name of the file
245
+ */
246
+ filename: string | null;
247
+
248
+ /**
249
+ * This is the URL you use to render optimized attachments on the client. This
250
+ * should be used for apps.
251
+ */
252
+ url: string | null;
253
+ }
254
+
255
+ /**
256
+ * An answer option for a multiple choice or multiple select assessment question
257
+ */
258
+ export interface Option {
259
+ /**
260
+ * The ID of the assessment question option
261
+ */
262
+ id: string;
263
+
264
+ /**
265
+ * Whether this option is a correct answer
266
+ */
267
+ is_correct: boolean;
268
+
269
+ /**
270
+ * The text of the answer option
271
+ */
272
+ option_text: string;
273
+
274
+ /**
275
+ * The order of this option within the question
276
+ */
277
+ order: number;
278
+ }
279
+ }
280
+
281
+ /**
282
+ * Represents an image attachment
283
+ */
284
+ export interface Attachment {
285
+ /**
286
+ * The ID of the attachment
287
+ */
288
+ id: string;
289
+
290
+ /**
291
+ * The attachment's content type (e.g., image/jpg, video/mp4)
292
+ */
293
+ content_type: string | null;
294
+
295
+ /**
296
+ * The name of the file
297
+ */
298
+ filename: string | null;
299
+
300
+ /**
301
+ * This is the URL you use to render optimized attachments on the client. This
302
+ * should be used for apps.
303
+ */
304
+ url: string | null;
305
+ }
306
+
307
+ /**
308
+ * The main PDF file for this lesson
309
+ */
310
+ export interface MainPdf {
311
+ /**
312
+ * The ID of the attachment
313
+ */
314
+ id: string;
315
+
316
+ /**
317
+ * The attachment's content type (e.g., image/jpg, video/mp4)
318
+ */
319
+ content_type: string | null;
320
+
321
+ /**
322
+ * The name of the file
323
+ */
324
+ filename: string | null;
325
+
326
+ /**
327
+ * This is the URL you use to render optimized attachments on the client. This
328
+ * should be used for apps.
329
+ */
330
+ url: string | null;
331
+ }
332
+
333
+ /**
334
+ * The associated Mux asset for video lessons
335
+ */
336
+ export interface VideoAsset {
337
+ /**
338
+ * The ID of the Mux asset
339
+ */
340
+ id: string;
341
+
342
+ /**
343
+ * The Mux-provided ID of the asset
344
+ */
345
+ asset_id: string | null;
346
+
347
+ /**
348
+ * The public playback ID of the Mux asset
349
+ */
350
+ playback_id: string | null;
351
+ }
352
+ }
353
+
354
+ /**
355
+ * The available types for a lesson
356
+ */
357
+ export type LessonTypes = 'text' | 'video' | 'pdf' | 'multi' | 'quiz' | 'knowledge_check';
358
+
359
+ /**
360
+ * The available visibilities for a lesson. Determines how / whether a lesson is
361
+ * visible to users.
362
+ */
363
+ export type LessonVisibilities = 'visible' | 'hidden';
364
+
365
+ /**
366
+ * A lesson from the courses app
367
+ */
368
+ export interface CourseLessonListResponse {
369
+ /**
370
+ * The ID of the lesson
371
+ */
372
+ id: string;
373
+
374
+ /**
375
+ * The content of the lesson
376
+ */
377
+ content: string | null;
378
+
379
+ /**
380
+ * Number of days from course start until the lesson is unlocked
381
+ */
382
+ days_from_course_start_until_unlock: number | null;
383
+
384
+ /**
385
+ * The type of the lesson (text, video, pdf, multi, quiz, knowledge_check)
386
+ */
387
+ lesson_type: LessonTypes;
388
+
389
+ /**
390
+ * The order of the lesson within its chapter
391
+ */
392
+ order: number;
393
+
394
+ /**
395
+ * The title of the lesson
396
+ */
397
+ title: string;
398
+
399
+ /**
400
+ * The visibility of the lesson. Determines how / whether this lesson is visible to
401
+ * users.
402
+ */
403
+ visibility: LessonVisibilities;
404
+ }
405
+
406
+ /**
407
+ * Represents `true` or `false` values.
408
+ */
409
+ export type CourseLessonDeleteResponse = boolean;
410
+
411
+ export interface CourseLessonCreateParams {
412
+ /**
413
+ * The ID of the chapter to create the lesson in
414
+ */
415
+ chapter_id: string;
416
+
417
+ /**
418
+ * The type of the lesson
419
+ */
420
+ lesson_type: LessonTypes;
421
+
422
+ /**
423
+ * The content of the lesson
424
+ */
425
+ content?: string | null;
426
+
427
+ /**
428
+ * Days from course start until unlock
429
+ */
430
+ days_from_course_start_until_unlock?: number | null;
431
+
432
+ /**
433
+ * The title of the lesson
434
+ */
435
+ title?: string | null;
436
+ }
437
+
438
+ export interface CourseLessonUpdateParams {
439
+ /**
440
+ * Assessment questions for quiz/knowledge check lessons. Replaces all existing
441
+ * questions.
442
+ */
443
+ assessment_questions?: Array<CourseLessonUpdateParams.AssessmentQuestion> | null;
444
+
445
+ /**
446
+ * General attachments for the lesson (PDFs, files, etc). Replaces all existing
447
+ * attachments.
448
+ */
449
+ attachments?: Array<CourseLessonUpdateParams.Attachment> | null;
450
+
451
+ /**
452
+ * The content of the lesson
453
+ */
454
+ content?: string | null;
455
+
456
+ /**
457
+ * Days from course start until unlock
458
+ */
459
+ days_from_course_start_until_unlock?: number | null;
460
+
461
+ /**
462
+ * The available types for a lesson
463
+ */
464
+ lesson_type?: LessonTypes | null;
465
+
466
+ /**
467
+ * The main PDF file for this lesson
468
+ */
469
+ main_pdf?: CourseLessonUpdateParams.MainPdf | null;
470
+
471
+ /**
472
+ * The ID of the Mux asset to attach to this lesson for video lessons
473
+ */
474
+ mux_asset_id?: string | null;
475
+
476
+ /**
477
+ * The title of the lesson
478
+ */
479
+ title?: string | null;
480
+
481
+ /**
482
+ * The available visibilities for a lesson. Determines how / whether a lesson is
483
+ * visible to users.
484
+ */
485
+ visibility?: LessonVisibilities | null;
486
+ }
487
+
488
+ export namespace CourseLessonUpdateParams {
489
+ /**
490
+ * Input for creating or updating an assessment question
491
+ */
492
+ export interface AssessmentQuestion {
493
+ /**
494
+ * The correct answer for the question. Used for short answer questions
495
+ */
496
+ correct_answer: string;
497
+
498
+ /**
499
+ * The text of the question
500
+ */
501
+ question_text: string;
502
+
503
+ /**
504
+ * The type of the question
505
+ */
506
+ question_type: CourseLessonsAPI.AssessmentQuestionTypes;
507
+
508
+ /**
509
+ * The ID of an existing question. If provided, the question will be updated. If
510
+ * not provided, a new question will be created.
511
+ */
512
+ id?: string | null;
513
+
514
+ /**
515
+ * Optional image attachment for the question
516
+ */
517
+ image?: AssessmentQuestion.Image | null;
518
+
519
+ /**
520
+ * The answer options for multiple choice/select questions
521
+ */
522
+ options?: Array<AssessmentQuestion.Option> | null;
523
+ }
524
+
525
+ export namespace AssessmentQuestion {
526
+ /**
527
+ * Optional image attachment for the question
528
+ */
529
+ export interface Image {
530
+ /**
531
+ * The ID of an existing attachment object. Use this when updating a resource and
532
+ * keeping a subset of the attachments. Don't use this unless you know what you're
533
+ * doing.
534
+ */
535
+ id?: string | null;
536
+
537
+ /**
538
+ * This ID should be used the first time you upload an attachment. It is the ID of
539
+ * the direct upload that was created when uploading the file to S3 via the
540
+ * mediaDirectUpload mutation.
541
+ */
542
+ direct_upload_id?: string | null;
543
+ }
544
+
545
+ /**
546
+ * Input for creating or updating an assessment question option
547
+ */
548
+ export interface Option {
549
+ /**
550
+ * Whether this option is a correct answer
551
+ */
552
+ is_correct: boolean;
553
+
554
+ /**
555
+ * The text of the answer option
556
+ */
557
+ option_text: string;
558
+
559
+ /**
560
+ * The ID of an existing option. If provided, the option will be updated. If not
561
+ * provided, a new option will be created.
562
+ */
563
+ id?: string | null;
564
+ }
565
+ }
566
+
567
+ /**
568
+ * Input for an attachment
569
+ */
570
+ export interface Attachment {
571
+ /**
572
+ * The ID of an existing attachment object. Use this when updating a resource and
573
+ * keeping a subset of the attachments. Don't use this unless you know what you're
574
+ * doing.
575
+ */
576
+ id?: string | null;
577
+
578
+ /**
579
+ * This ID should be used the first time you upload an attachment. It is the ID of
580
+ * the direct upload that was created when uploading the file to S3 via the
581
+ * mediaDirectUpload mutation.
582
+ */
583
+ direct_upload_id?: string | null;
584
+ }
585
+
586
+ /**
587
+ * The main PDF file for this lesson
588
+ */
589
+ export interface MainPdf {
590
+ /**
591
+ * The ID of an existing attachment object. Use this when updating a resource and
592
+ * keeping a subset of the attachments. Don't use this unless you know what you're
593
+ * doing.
594
+ */
595
+ id?: string | null;
596
+
597
+ /**
598
+ * This ID should be used the first time you upload an attachment. It is the ID of
599
+ * the direct upload that was created when uploading the file to S3 via the
600
+ * mediaDirectUpload mutation.
601
+ */
602
+ direct_upload_id?: string | null;
603
+ }
604
+ }
605
+
606
+ export interface CourseLessonListParams extends CursorPageParams {
607
+ /**
608
+ * Returns the elements in the list that come before the specified cursor.
609
+ */
610
+ before?: string | null;
611
+
612
+ /**
613
+ * The ID of the chapter (returns lessons only for this chapter)
614
+ */
615
+ chapter_id?: string | null;
616
+
617
+ /**
618
+ * The ID of the course (returns all lessons across all chapters)
619
+ */
620
+ course_id?: string | null;
621
+
622
+ /**
623
+ * Returns the first _n_ elements from the list.
624
+ */
625
+ first?: number | null;
626
+
627
+ /**
628
+ * Returns the last _n_ elements from the list.
629
+ */
630
+ last?: number | null;
631
+ }
632
+
633
+ export declare namespace CourseLessons {
634
+ export {
635
+ type AssessmentQuestionTypes as AssessmentQuestionTypes,
636
+ type Lesson as Lesson,
637
+ type LessonTypes as LessonTypes,
638
+ type LessonVisibilities as LessonVisibilities,
639
+ type CourseLessonListResponse as CourseLessonListResponse,
640
+ type CourseLessonDeleteResponse as CourseLessonDeleteResponse,
641
+ type CourseLessonListResponsesCursorPage as CourseLessonListResponsesCursorPage,
642
+ type CourseLessonCreateParams as CourseLessonCreateParams,
643
+ type CourseLessonUpdateParams as CourseLessonUpdateParams,
644
+ type CourseLessonListParams as CourseLessonListParams,
645
+ };
646
+ }