@saebyn/glowing-telegram-types 0.7.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/types.ts +89 -2
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@saebyn/glowing-telegram-types",
3
3
  "license": "AGPL-3.0-only",
4
- "version": "0.7.0",
4
+ "version": "0.9.1",
5
5
  "main": "src/types.ts",
6
6
  "files": [
7
7
  "src/types.ts"
package/src/types.ts CHANGED
@@ -8,6 +8,10 @@ export interface AuthorizationURLResponse {
8
8
  }
9
9
 
10
10
  export interface CutList {
11
+ /**
12
+ * Audio channel mixing and volume control configuration
13
+ */
14
+ audioMixing?: AudioChannelMixing[];
11
15
  /**
12
16
  * List of input media sources
13
17
  */
@@ -26,6 +30,40 @@ export interface CutList {
26
30
  version: "1.0.0";
27
31
  }
28
32
 
33
+ /**
34
+ * Audio mixing configuration for a specific channel
35
+ */
36
+ export interface AudioChannelMixing {
37
+ /**
38
+ * Volume keyframes for this channel throughout the timeline
39
+ */
40
+ keyframes?: AudioChannelKeyframe[];
41
+ /**
42
+ * 0-indexed output audio channel number
43
+ */
44
+ outputChannel: number;
45
+ /**
46
+ * 0-indexed source audio channel number
47
+ */
48
+ sourceChannel: number;
49
+ [property: string]: unknown;
50
+ }
51
+
52
+ /**
53
+ * A keyframe defining volume level for an audio channel at a specific timeline position
54
+ */
55
+ export interface AudioChannelKeyframe {
56
+ /**
57
+ * Timeline frame position for this keyframe
58
+ */
59
+ frame: number;
60
+ /**
61
+ * Volume level (0.0 = mute, 1.0 = original, >1.0 = amplified)
62
+ */
63
+ volume: number;
64
+ [property: string]: unknown;
65
+ }
66
+
29
67
  export interface InputMedia {
30
68
  /**
31
69
  * Path of the media
@@ -140,7 +178,7 @@ export type OverlayTrackType = "alpha" | "colorkey";
140
178
  export interface Episode {
141
179
  category?: number;
142
180
  created_at?: string;
143
- cut_list?: CutListClass;
181
+ cut_list?: EpisodeCutList;
144
182
  description?: string;
145
183
  error_message?: string;
146
184
  id?: string;
@@ -163,7 +201,11 @@ export interface Episode {
163
201
  youtube_video_id?: string;
164
202
  }
165
203
 
166
- export interface CutListClass {
204
+ export interface EpisodeCutList {
205
+ /**
206
+ * Audio channel mixing and volume control configuration
207
+ */
208
+ audioMixing?: AudioChannelMixing[];
167
209
  /**
168
210
  * List of input media sources
169
211
  */
@@ -197,6 +239,50 @@ export interface Profile {
197
239
  id: string;
198
240
  }
199
241
 
242
+ export interface Project {
243
+ created_at?: string;
244
+ cut_list?: ProjectCutList;
245
+ /**
246
+ * Optional reference to the episode this project is linked to
247
+ */
248
+ episode_id?: string;
249
+ id?: string;
250
+ /**
251
+ * Current status of the project - no backend validation enforced
252
+ */
253
+ status?: string;
254
+ title?: string;
255
+ updated_at?: string;
256
+ user_id?: string;
257
+ /**
258
+ * Array of video clip IDs that are part of this project
259
+ */
260
+ video_clip_ids?: string[];
261
+ }
262
+
263
+ export interface ProjectCutList {
264
+ /**
265
+ * Audio channel mixing and volume control configuration
266
+ */
267
+ audioMixing?: AudioChannelMixing[];
268
+ /**
269
+ * List of input media sources
270
+ */
271
+ inputMedia: InputMedia[];
272
+ /**
273
+ * Ordered media sections to form the output timeline sequence
274
+ */
275
+ outputTrack: OutputTrack[];
276
+ /**
277
+ * One or more overlay tracks
278
+ */
279
+ overlayTracks?: OverlayTrack[];
280
+ /**
281
+ * Schema version
282
+ */
283
+ version: "1.0.0";
284
+ }
285
+
200
286
  export interface RenderRequest {
201
287
  episodeIds: string[];
202
288
  }
@@ -288,6 +374,7 @@ export interface Task {
288
374
  status: Status;
289
375
  task_type: TaskType;
290
376
  updated_at?: string;
377
+ user_id: string;
291
378
  }
292
379
 
293
380
  export type Status = "PENDING" | "RUNNING" | "COMPLETED" | "FAILED" | "TIMED_OUT" | "ABORTED" | "PENDING_REDRIVE";