export type BlockType = 'paragraph' | 'heading' | 'headingParagraph' | 'list' | 'imageCentered' | 'imageFullWidth' | 'imageSideBySide' | 'imageTextOverlay' | 'videoEmbed' | 'tabs' | 'accordion' | 'flipCards' | 'cardSort' | 'singleChoice' | 'multipleChoice' | 'fillInBlank' | 'dividerLine' | 'customButton'; export interface Block { id: string; lessonId: string; type: BlockType; paddingTop?: number; paddingBottom?: number; [key: string]: any; createdAt: string; updatedAt: string; } export interface BlockCreate { type: BlockType; paddingTop?: number; paddingBottom?: number; [key: string]: any; } /** * List all content blocks in a lesson in display order. * * @param lessonId - Lesson ID * @returns Array of blocks with complete data * @example * const blocks = await listBlocks('lesson_123'); * console.log(`Lesson has ${blocks.length} blocks`); */ export declare function listBlocks(lessonIdOrCourseId: string, maybeLessonId?: string): Promise; /** * Get detailed information about a specific block. * * @param blockId - Block ID * @returns Complete block object * @example * const block = await getBlock('block_abc123'); * console.log(`Block type: ${block.type}`); */ export declare function getBlock(blockIdOrCourseId: string, maybeLessonId?: string, maybeBlockId?: string): Promise; /** * Create a new content block in a lesson. * Block is automatically added to the end of the lesson. * Supports all 18 block types with type-specific properties. * * @param lessonId - Lesson ID * @param data - Block creation data * @returns Newly created block * @example * // Create a paragraph block * const paragraph = await createBlock('lesson_123', { * type: 'paragraph', * text: 'This is a paragraph of text', * fontSize: 16, * paddingTop: 24, * paddingBottom: 24 * }); * * // Create an image block * const image = await createBlock('lesson_123', { * type: 'imageCentered', * assetId: 'asset_xyz', * alt: 'Safety equipment', * maxWidthPercent: 80 * }); */ export declare function createBlock(lessonIdOrCourseId: string, dataOrLessonId: BlockCreate | string, maybeData?: BlockCreate): Promise; /** * Update any properties of a content block. * * @param blockId - Block ID * @param updates - Fields to update * @returns Updated block * @example * await updateBlock('block_123', { * text: 'Updated text content', * fontSize: 18, * fontColor: '#333333' * }); */ export declare function updateBlock(blockId: string, updates: Partial): Promise; /** * Delete a content block from its lesson. * * @param blockId - Block ID * @example * await deleteBlock('block_123'); */ export declare function deleteBlock(blockId: string): Promise; /** * Duplicate a content block. * Can optionally duplicate to a different lesson. * * @param blockId - Source block ID * @param targetLessonId - Optional: Destination lesson ID * @returns Newly created block copy * @example * // Duplicate within same lesson * const copy = await duplicateBlock('block_123'); * * // Copy to different lesson * const copy2 = await duplicateBlock('block_123', 'lesson_456'); */ export declare function duplicateBlock(blockId: string, targetLessonId?: string): Promise; /** * Reorder all blocks in a lesson. * * @param lessonId - Lesson ID * @param blockIds - Complete array of block IDs in desired order * @returns Updated lesson object * @example * await reorderBlocks('lesson_123', [ * 'block_3', * 'block_1', * 'block_2' * ]); */ export declare function reorderBlocks(lessonId: string, blockIds: string[]): Promise; /** * Create multiple blocks in one operation (efficient batch creation). * All blocks created atomically - if one fails, none are created. * * @param lessonId - Lesson ID * @param blocks - Array of block creation data * @returns Array of created blocks * @example * const blocks = await batchCreateBlocks('lesson_123', [ * { type: 'heading', text: 'Introduction' }, * { type: 'paragraph', text: 'This lesson covers...' }, * { type: 'imageCentered', assetId: 'asset_123', alt: 'Diagram' } * ]); */ export declare function batchCreateBlocks(lessonId: string, blocks: BlockCreate[]): Promise; /** * Update multiple blocks in one operation (efficient batch update). * Updates applied atomically. * * @param updates - Array of block updates * @returns Array of updated blocks * @example * await batchUpdateBlocks([ * { blockId: 'block_1', updates: { text: 'Updated text 1' } }, * { blockId: 'block_2', updates: { fontSize: 18 } }, * { blockId: 'block_3', updates: { paddingTop: 32 } } * ]); */ export declare function batchUpdateBlocks(updates: Array<{ blockId: string; updates: Partial; }>): Promise; //# sourceMappingURL=blocks.d.ts.map