editia-core
Version:
Core services and utilities for Editia applications - Authentication, Monetization, Video Generation Types, and Database Management
60 lines • 2.43 kB
TypeScript
/**
* Unified Video Template Service
* Consolidates video template operations with validation
*/
import type { VideoType, CaptionConfiguration, ScenePlan, TemplateValidationResult } from './types';
/**
* Service for managing video templates with comprehensive validation
*/
export declare class VideoTemplateService {
/**
* Validates a video template with caption and duration checks
*
* @param scriptText - The script text to validate against
* @param selectedVideos - Videos selected for the template
* @param captionConfig - Caption configuration
* @returns Validation result with warnings and errors
*/
static validateTemplate(scriptText: string, selectedVideos: VideoType[], captionConfig: CaptionConfiguration): TemplateValidationResult;
/**
* Generates a scene plan for video template
* Removes caption elements if captions are disabled
*
* @param scriptText - The script text
* @param selectedVideos - Videos to use in template
* @param captionConfig - Caption configuration
* @returns Array of scene plans
*/
static generateScenePlan(scriptText: string, selectedVideos: VideoType[], captionConfig: CaptionConfiguration): ScenePlan[];
/**
* Processes template configuration by removing captions if disabled
*
* @param template - Base template configuration
* @param captionConfig - Caption configuration
* @returns Processed template with captions removed if disabled
*/
static processTemplate(template: any, captionConfig: CaptionConfiguration): any;
/**
* Gets Y position for caption placement
*
* @param placement - Caption placement option
* @returns Y coordinate for caption positioning
*/
private static getCaptionYPosition;
/**
* Validates script length against available video durations
*
* @param scriptText - The script text
* @param videos - Available videos
* @returns Whether the script can be accommodated by the videos
*/
static canAccommodateScript(scriptText: string, videos: VideoType[]): boolean;
/**
* Gets recommended video duration for a given script
*
* @param scriptText - The script text
* @returns Recommended minimum video duration in seconds
*/
static getRecommendedDuration(scriptText: string): number;
}
//# sourceMappingURL=template-service.d.ts.map