UNPKG

ems-editor

Version:

EMS Video Editor SDK - Universal JavaScript SDK for external video editor integration

187 lines (186 loc) 4.49 kB
/** * Interface for render options used in startRender and startRenderWithMAMUpload methods */ export interface RenderOptions { title?: string; color?: string; duration?: number; fps?: number; width?: number; height?: number; template?: any; settings?: any; format?: 'mp4' | 'webm' | 'mov' | 'mxf'; codec?: string; quality?: 'low' | 'medium' | 'high' | 'ultra'; uploadToMAM?: boolean; mamToken?: string; mamBaseUrl?: string; mamProjectId?: number; mamBinId?: number | null; sessionId?: string; compositionProps?: Record<string, any>; } /** * MAM Upload Event stages */ export type MAMUploadStage = 'preparing' | 'analyzing' | 'converting' | 'uploading' | 'completing' | 'completed' | 'failed'; /** * MAM Upload Progress Event Result */ export interface MAMUploadEventResult { jobId: string; stage: MAMUploadStage; progress: number; message: string; currentStep?: string; totalSteps?: number; currentStepIndex?: number; fileInfo?: { size: number; sizeFormatted: string; format: string; duration?: number; resolution?: string; }; conversionInfo?: { inputFormat: string; outputFormat: string; conversionProgress: number; conversionSpeed?: string; estimatedTimeRemaining?: string; }; chunkProgress?: { uploadedChunks: number; totalChunks: number; chunkSize: string; }; binInfo?: { binPath: string; binId: number; }; assetId?: number; assetUrl?: string; error?: string; logs?: string[]; } /** * MAM Upload Complete Result */ export interface MAMUploadCompleteResult { assetId: number; assetName?: string; assetUrl?: string; jobId: string; videoUrl: string; uploadTime?: number; fileSize?: number; binPath?: string; } /** * MAM Upload Tracker */ export interface MAMUploadTracker { trackingId: string; stop: () => void; } /** * Result from startRenderWithMAMUpload method */ export interface StartRenderWithMAMUploadResult { jobId?: string; tracker: MAMUploadTracker; } /** * MAM Upload Callbacks */ export interface MAMUploadCallbacks { onProgress?: (progress: MAMUploadEventResult) => void; onStageChange?: (stage: MAMUploadStage, data: MAMUploadEventResult) => void; onComplete?: (result: MAMUploadCompleteResult) => void; onError?: (error: string) => void; } /** * Workspace Loading Options */ export interface LoadWorkspaceOptions { workspaceId: string; sessionId?: string; mergeMode?: 'replace' | 'append'; switchToWorkspace?: boolean; } /** * Workspace Loading Result */ export interface LoadWorkspaceResult { success: boolean; workspaceId: string; localWorkspaceId: string; workspaceName: string; message?: string; error?: string; } /** * Workspace Loading Progress Event */ export interface WorkspaceLoadingProgress { stage: 'fetching' | 'parsing' | 'importing' | 'completed' | 'failed'; progress: number; message: string; workspaceId?: string; workspaceName?: string; error?: string; } /** * Workspace Loading Callbacks */ export interface WorkspaceLoadingCallbacks { onProgress?: (progress: WorkspaceLoadingProgress) => void; onComplete?: (result: LoadWorkspaceResult) => void; onError?: (error: string) => void; } /** * Quick Render Options - simplified render interface using current workspace */ export interface QuickRenderOptions { title?: string; format?: 'mp4' | 'webm' | 'mov' | 'mxf'; codec?: string; fps?: number; uploadToMAM?: boolean; } /** * Quick Render Result */ export interface QuickRenderResult { success: boolean; jobId?: string; message: string; error?: string; } /** * Render Job Status */ export type RenderJobStatus = 'queued' | 'in-progress' | 'uploading' | 'completed' | 'failed' | 'cancelled'; /** * Render Result from job status */ export interface RenderResult { jobId: string; status: RenderJobStatus; progress?: number; message?: string; error?: string; videoUrl?: string; downloadUrl?: string; mamAssetId?: number; mamAssetUrl?: string; mamAssetName?: string; mamUploadSuccess?: boolean; mamUploadError?: string; startTime?: string; endTime?: string; renderTime?: number; fileSize?: number; format?: string; }