export interface VideoAsset { id: string; workspaceId: string; storageKey: string; mimeType: string; sizeBytes: number; width?: number; height?: number; durationMs?: number; frameRate?: number; codec?: string; audioCodec?: string; thumbnailKey?: string; } export type VideoProcessingJobState = | "queued" | "probing" | "transcoding" | "complete" | "failed"; export interface VideoProcessingJob { id: string; workspaceId: string; videoAssetId: string; state: VideoProcessingJobState; progressPercent?: number; outputKey?: string; error?: string; } export interface VideoLibraryEntry { videoAsset: VideoAsset; processingState: VideoProcessingJobState; publications: Array<{ connectionId: string; remoteId: string; platform: string; publishedAt: Date; }>; }