import type { Block } from './blocks.js'; export interface Lesson { id: string; courseId: string; title: string; slug: string; blockIds: string[]; languageCode: string; createdAt: string; updatedAt: string; } export interface LessonCreate { title: string; languageCode?: string; } /** * List all lessons in a course. * Optionally filter by language code. * * @param courseId - Course ID * @param languageCode - Optional: Filter by language (e.g., "en", "fr") * @returns Array of lessons * @example * // Get all lessons in all languages * const allLessons = await listLessons('course_123'); * * // Get only English lessons * const enLessons = await listLessons('course_123', 'en'); */ export declare function listLessons(courseId: string, languageCode?: string): Promise; /** * Get detailed information about a specific lesson. * * @param lessonId - Lesson ID * @returns Complete lesson object * @example * const lesson = await getLesson('lesson_abc123'); * console.log(`Lesson has ${lesson.blockIds.length} blocks`); */ export declare function getLesson(lessonIdOrCourseId: string, maybeLessonId?: string | { includeBlocks?: boolean; }, maybeOptions?: { includeBlocks?: boolean; }): Promise; /** * Create a new lesson within a course. * Automatically added to the course's lesson list. * * @param courseId - Course ID * @param data - Lesson creation data * @returns Newly created lesson * @example * const lesson = await createLesson('course_123', { * title: 'Introduction to Safety', * languageCode: 'en' * }); */ export declare function createLesson(courseId: string, data: LessonCreate): Promise; /** * Update lesson title or reorder blocks. * * @param lessonId - Lesson ID * @param updates - Fields to update * @returns Updated lesson * @example * await updateLesson('lesson_123', { * title: 'Updated Title', * blockIds: ['block_1', 'block_3', 'block_2'] * }); */ export declare function updateLesson(lessonIdOrCourseId: string, updatesOrLessonId: { title?: string; blockIds?: string[]; } | string, maybeUpdates?: { title?: string; blockIds?: string[]; }): Promise; /** * Delete a lesson and all its content blocks. * * @param lessonId - Lesson ID * @example * await deleteLesson('lesson_123'); */ export declare function deleteLesson(lessonId: string): Promise; /** * Duplicate a lesson with all its blocks. * Can optionally duplicate to a different course. * * @param lessonId - Source lesson ID * @param targetCourseId - Optional: Destination course ID * @returns Newly created lesson copy * @example * // Duplicate within same course * const copy = await duplicateLesson('lesson_123'); * * // Copy to different course * const copy2 = await duplicateLesson('lesson_123', 'course_456'); */ export declare function duplicateLesson(lessonId: string, targetCourseId?: string): Promise; /** * Reorder lessons within a course. * * @param courseId - Course ID * @param lessonIds - Complete array of lesson IDs in desired order * @returns Updated course object * @example * await reorderLessons('course_123', [ * 'lesson_3', * 'lesson_1', * 'lesson_2' * ]); */ export declare function reorderLessons(courseId: string, lessonIds: string[]): Promise; /** * Create multiple lessons in one operation (efficient batch creation). * * @param courseId - Course ID * @param lessons - Array of lesson creation data * @returns Array of created lessons * @example * const lessons = await batchCreateLessons('course_123', [ * { title: 'Lesson 1', languageCode: 'en' }, * { title: 'Lesson 2', languageCode: 'en' }, * { title: 'Lesson 3', languageCode: 'en' } * ]); */ export declare function batchCreateLessons(courseId: string, lessons: LessonCreate[]): Promise; //# sourceMappingURL=lessons.d.ts.map