+ previousVideoState: VideoState
+}
+
+export type VideoStudioTaskCutPayload = VideoStudioTaskCut
+
+export type VideoStudioTaskIntroPayload = {
+ name: 'add-intro'
+
+ options: {
+ file: string
+ }
+}
+
+export type VideoStudioTaskOutroPayload = {
+ name: 'add-outro'
+
+ options: {
+ file: string
+ }
+}
+
+export type VideoStudioTaskWatermarkPayload = {
+ name: 'add-watermark'
+
+ options: {
+ file: string
+ }
+}
+
+export type VideoStudioTaskPayload =
+ VideoStudioTaskCutPayload |
+ VideoStudioTaskIntroPayload |
+ VideoStudioTaskOutroPayload |
+ VideoStudioTaskWatermarkPayload
+
+export interface VideoStudioEditionPayload {
+ videoUUID: string
+ tasks: VideoStudioTaskPayload[]
+}
+
+// ---------------------------------------------------------------------------
+
+export interface VideoChannelImportPayload {
+ externalChannelUrl: string
+ videoChannelId: number
+
+ partOfChannelSyncId?: number
+}
+
+export interface AfterVideoChannelImportPayload {
+ channelSyncId: number
+}
+
+// ---------------------------------------------------------------------------
+
+export type NotifyPayload =
+ {
+ action: 'new-video'
+ videoUUID: string
+ }
+
+// ---------------------------------------------------------------------------
+
+export interface FederateVideoPayload {
+ videoUUID: string
+ isNewVideo: boolean