@wave-av/sdk 2.0.0 → 2.0.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 (99) hide show
  1. package/dist/audience.d.ts +104 -0
  2. package/dist/audience.d.ts.map +1 -0
  3. package/dist/camera-control.d.ts +54 -0
  4. package/dist/camera-control.d.ts.map +1 -0
  5. package/dist/captions.d.ts +362 -0
  6. package/dist/captions.d.ts.map +1 -0
  7. package/dist/chapters.d.ts +315 -0
  8. package/dist/chapters.d.ts.map +1 -0
  9. package/dist/client.d.ts +191 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/clips.d.ts +258 -0
  12. package/dist/clips.d.ts.map +1 -0
  13. package/dist/cloud-switcher.d.ts +65 -0
  14. package/dist/cloud-switcher.d.ts.map +1 -0
  15. package/dist/collab-types.d.ts +204 -0
  16. package/dist/collab-types.d.ts.map +1 -0
  17. package/dist/collab.d.ts +226 -0
  18. package/dist/collab.d.ts.map +1 -0
  19. package/dist/connect.d.ts +88 -0
  20. package/dist/connect.d.ts.map +1 -0
  21. package/dist/creator.d.ts +109 -0
  22. package/dist/creator.d.ts.map +1 -0
  23. package/dist/desktop.d.ts +95 -0
  24. package/dist/desktop.d.ts.map +1 -0
  25. package/dist/distribution.d.ts +92 -0
  26. package/dist/distribution.d.ts.map +1 -0
  27. package/dist/drm.d.ts +87 -0
  28. package/dist/drm.d.ts.map +1 -0
  29. package/dist/edge.d.ts +112 -0
  30. package/dist/edge.d.ts.map +1 -0
  31. package/dist/editor-types.d.ts +236 -0
  32. package/dist/editor-types.d.ts.map +1 -0
  33. package/dist/editor.d.ts +206 -0
  34. package/dist/editor.d.ts.map +1 -0
  35. package/dist/fleet.d.ts +207 -0
  36. package/dist/fleet.d.ts.map +1 -0
  37. package/dist/ghost.d.ts +213 -0
  38. package/dist/ghost.d.ts.map +1 -0
  39. package/dist/index.d.ts +144 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/marketplace.d.ts +90 -0
  42. package/dist/marketplace.d.ts.map +1 -0
  43. package/dist/mesh.d.ts +237 -0
  44. package/dist/mesh.d.ts.map +1 -0
  45. package/dist/notifications.d.ts +82 -0
  46. package/dist/notifications.d.ts.map +1 -0
  47. package/dist/phone.d.ts +369 -0
  48. package/dist/phone.d.ts.map +1 -0
  49. package/dist/pipeline.d.ts +409 -0
  50. package/dist/pipeline.d.ts.map +1 -0
  51. package/dist/podcast.d.ts +113 -0
  52. package/dist/podcast.d.ts.map +1 -0
  53. package/dist/prism.d.ts +132 -0
  54. package/dist/prism.d.ts.map +1 -0
  55. package/dist/prompter.d.ts +184 -0
  56. package/dist/prompter.d.ts.map +1 -0
  57. package/dist/pulse.d.ts +156 -0
  58. package/dist/pulse.d.ts.map +1 -0
  59. package/dist/qr.d.ts +82 -0
  60. package/dist/qr.d.ts.map +1 -0
  61. package/dist/replay.d.ts +52 -0
  62. package/dist/replay.d.ts.map +1 -0
  63. package/dist/scene-types.d.ts +190 -0
  64. package/dist/scene-types.d.ts.map +1 -0
  65. package/dist/scene.d.ts +213 -0
  66. package/dist/scene.d.ts.map +1 -0
  67. package/dist/search-types.d.ts +210 -0
  68. package/dist/search-types.d.ts.map +1 -0
  69. package/dist/search.d.ts +250 -0
  70. package/dist/search.d.ts.map +1 -0
  71. package/dist/sentiment.d.ts +378 -0
  72. package/dist/sentiment.d.ts.map +1 -0
  73. package/dist/signage.d.ts +101 -0
  74. package/dist/signage.d.ts.map +1 -0
  75. package/dist/slides.d.ts +68 -0
  76. package/dist/slides.d.ts.map +1 -0
  77. package/dist/studio-ai-types.d.ts +198 -0
  78. package/dist/studio-ai-types.d.ts.map +1 -0
  79. package/dist/studio-ai.d.ts +218 -0
  80. package/dist/studio-ai.d.ts.map +1 -0
  81. package/dist/studio-types.d.ts +267 -0
  82. package/dist/studio-types.d.ts.map +1 -0
  83. package/dist/studio.d.ts +234 -0
  84. package/dist/studio.d.ts.map +1 -0
  85. package/dist/telemetry.d.ts +76 -0
  86. package/dist/telemetry.d.ts.map +1 -0
  87. package/dist/transcribe-types.d.ts +153 -0
  88. package/dist/transcribe-types.d.ts.map +1 -0
  89. package/dist/transcribe.d.ts +218 -0
  90. package/dist/transcribe.d.ts.map +1 -0
  91. package/dist/usb.d.ts +64 -0
  92. package/dist/usb.d.ts.map +1 -0
  93. package/dist/vault.d.ts +121 -0
  94. package/dist/vault.d.ts.map +1 -0
  95. package/dist/voice.d.ts +307 -0
  96. package/dist/voice.d.ts.map +1 -0
  97. package/dist/zoom.d.ts +91 -0
  98. package/dist/zoom.d.ts.map +1 -0
  99. package/package.json +1 -1
package/dist/drm.d.ts ADDED
@@ -0,0 +1,87 @@
1
+ /**
2
+ * WAVE SDK - DRM API
3
+ *
4
+ * Digital Rights Management: content protection with Widevine, FairPlay, and PlayReady.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type DRMProvider = "widevine" | "fairplay" | "playready";
8
+ export type LicenseStatus = "active" | "expired" | "revoked";
9
+ export interface DRMPolicy extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ name: string;
13
+ providers: DRMProvider[];
14
+ allow_offline: boolean;
15
+ offline_duration_seconds?: number;
16
+ max_devices: number;
17
+ output_protection: "none" | "hdcp_1" | "hdcp_2";
18
+ security_level: "sw" | "hw";
19
+ persistent_license: boolean;
20
+ }
21
+ export interface DRMLicense extends Timestamps {
22
+ id: string;
23
+ policy_id: string;
24
+ asset_id: string;
25
+ user_id: string;
26
+ provider: DRMProvider;
27
+ status: LicenseStatus;
28
+ device_id?: string;
29
+ expires_at?: string;
30
+ playback_count: number;
31
+ }
32
+ export interface DRMCertificate {
33
+ provider: DRMProvider;
34
+ certificate: string;
35
+ expires_at: string;
36
+ }
37
+ export interface CreatePolicyRequest {
38
+ name: string;
39
+ providers: DRMProvider[];
40
+ allow_offline?: boolean;
41
+ offline_duration_seconds?: number;
42
+ max_devices?: number;
43
+ output_protection?: "none" | "hdcp_1" | "hdcp_2";
44
+ security_level?: "sw" | "hw";
45
+ persistent_license?: boolean;
46
+ }
47
+ export interface ListPoliciesParams extends PaginationParams {
48
+ provider?: DRMProvider;
49
+ }
50
+ /**
51
+ * Digital Rights Management for content protection with Widevine, FairPlay, and PlayReady.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const policy = await wave.drm.createPolicy({ name: 'Premium', providers: ['widevine', 'fairplay'], max_devices: 3 });
56
+ * const cert = await wave.drm.getCertificate('fairplay');
57
+ * const license = await wave.drm.issueLicense(assetId, policyId);
58
+ * ```
59
+ */
60
+ export declare class DrmAPI {
61
+ private readonly client;
62
+ private readonly basePath;
63
+ constructor(client: WaveClient);
64
+ /** Create a DRM policy. */
65
+ createPolicy(request: CreatePolicyRequest): Promise<DRMPolicy>;
66
+ /** Get a DRM policy by ID. */
67
+ getPolicy(policyId: string): Promise<DRMPolicy>;
68
+ /** List DRM policies. */
69
+ listPolicies(params?: ListPoliciesParams): Promise<PaginatedResponse<DRMPolicy>>;
70
+ /** Update a DRM policy. */
71
+ updatePolicy(policyId: string, updates: Partial<CreatePolicyRequest>): Promise<DRMPolicy>;
72
+ /** Delete a DRM policy. */
73
+ removePolicy(policyId: string): Promise<void>;
74
+ /** Get a DRM certificate for a provider. */
75
+ getCertificate(provider: DRMProvider): Promise<DRMCertificate>;
76
+ /** Issue a license for an asset. */
77
+ issueLicense(assetId: string, policyId: string, deviceId?: string): Promise<DRMLicense>;
78
+ /** Revoke a license. */
79
+ revokeLicense(licenseId: string): Promise<DRMLicense>;
80
+ /** List licenses for an asset or user. */
81
+ listLicenses(params?: {
82
+ asset_id?: string;
83
+ user_id?: string;
84
+ status?: LicenseStatus;
85
+ } & PaginationParams): Promise<PaginatedResponse<DRMLicense>>;
86
+ }
87
+ export declare function createDrmAPI(client: WaveClient): DrmAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drm.d.ts","sourceRoot":"","sources":["../src/drm.ts"],"names":[],"mappings":"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"}
package/dist/edge.d.ts ADDED
@@ -0,0 +1,112 @@
1
+ /**
2
+ * WAVE SDK - Edge API
3
+ *
4
+ * Edge computing, CDN operations, and worker deployment.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type EdgeNodeStatus = "active" | "draining" | "offline" | "updating";
8
+ export interface EdgeNode extends Timestamps {
9
+ id: string;
10
+ name: string;
11
+ region: string;
12
+ provider: "cloudflare" | "aws" | "gcp";
13
+ status: EdgeNodeStatus;
14
+ latency_ms: number;
15
+ capacity_percent: number;
16
+ active_workers: number;
17
+ bandwidth_mbps: number;
18
+ }
19
+ export interface EdgeWorker extends Timestamps {
20
+ id: string;
21
+ name: string;
22
+ node_id: string;
23
+ status: "deployed" | "running" | "stopped" | "error";
24
+ runtime: "v8" | "wasm" | "node";
25
+ script_size_bytes: number;
26
+ memory_limit_mb: number;
27
+ invocations: number;
28
+ last_deployed_at: string;
29
+ }
30
+ export interface WorkerConfig {
31
+ name: string;
32
+ runtime: "v8" | "wasm" | "node";
33
+ script: string;
34
+ routes: string[];
35
+ environment?: Record<string, string>;
36
+ memory_limit_mb?: number;
37
+ }
38
+ export interface EdgeMetrics {
39
+ node_id: string;
40
+ requests_per_second: number;
41
+ bandwidth_mbps: number;
42
+ cache_hit_ratio: number;
43
+ p50_latency_ms: number;
44
+ p95_latency_ms: number;
45
+ p99_latency_ms: number;
46
+ error_rate: number;
47
+ timestamp: string;
48
+ }
49
+ export interface CDNPop {
50
+ id: string;
51
+ location: string;
52
+ provider: string;
53
+ status: "active" | "draining" | "offline";
54
+ cache_size_gb: number;
55
+ hit_ratio: number;
56
+ connections: number;
57
+ }
58
+ export interface RoutingRule {
59
+ id: string;
60
+ pattern: string;
61
+ target: string;
62
+ priority: number;
63
+ weight?: number;
64
+ region_affinity?: string;
65
+ }
66
+ export interface DeployWorkerRequest {
67
+ name: string;
68
+ runtime: "v8" | "wasm" | "node";
69
+ script: string;
70
+ routes: string[];
71
+ environment?: Record<string, string>;
72
+ memory_limit_mb?: number;
73
+ }
74
+ export interface ListEdgeNodesParams extends PaginationParams {
75
+ region?: string;
76
+ status?: EdgeNodeStatus;
77
+ provider?: string;
78
+ }
79
+ /**
80
+ * Edge computing, CDN operations, and worker deployment.
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const nodes = await wave.edge.listNodes({ region: 'us-west' });
85
+ * await wave.edge.deployWorker({ name: 'transform', runtime: 'v8', script: '...', routes: ['/api/*'] });
86
+ * await wave.edge.purgeCache(['/assets/*']);
87
+ * ```
88
+ */
89
+ export declare class EdgeAPI {
90
+ private readonly client;
91
+ private readonly basePath;
92
+ constructor(client: WaveClient);
93
+ listNodes(params?: ListEdgeNodesParams): Promise<PaginatedResponse<EdgeNode>>;
94
+ getNode(nodeId: string): Promise<EdgeNode>;
95
+ getNodeMetrics(nodeId: string): Promise<EdgeMetrics>;
96
+ deployWorker(request: DeployWorkerRequest): Promise<EdgeWorker>;
97
+ getWorker(workerId: string): Promise<EdgeWorker>;
98
+ updateWorker(workerId: string, config: Partial<WorkerConfig>): Promise<EdgeWorker>;
99
+ removeWorker(workerId: string): Promise<void>;
100
+ listWorkers(params?: PaginationParams): Promise<PaginatedResponse<EdgeWorker>>;
101
+ startWorker(workerId: string): Promise<EdgeWorker>;
102
+ stopWorker(workerId: string): Promise<EdgeWorker>;
103
+ listPops(): Promise<CDNPop[]>;
104
+ purgeCache(patterns: string[]): Promise<{
105
+ purged: number;
106
+ }>;
107
+ getRoutingRules(): Promise<RoutingRule[]>;
108
+ setRoutingRule(rule: Omit<RoutingRule, "id">): Promise<RoutingRule>;
109
+ removeRoutingRule(ruleId: string): Promise<void>;
110
+ getLatencyMap(): Promise<Record<string, number>>;
111
+ }
112
+ export declare function createEdgeAPI(client: WaveClient): EdgeAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ /**
2
+ * WAVE SDK - Editor API
3
+ *
4
+ * Video editing capabilities including cuts, transitions, overlays, and effects.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { PaginationParams, Timestamps, Metadata } from './client';
10
+ /**
11
+ * Project status
12
+ */
13
+ export type ProjectStatus = 'draft' | 'rendering' | 'ready' | 'failed' | 'archived';
14
+ /**
15
+ * Track type
16
+ */
17
+ export type TrackType = 'video' | 'audio' | 'text' | 'image' | 'effect';
18
+ /**
19
+ * Transition type
20
+ */
21
+ export type TransitionType = 'cut' | 'fade' | 'dissolve' | 'wipe' | 'slide' | 'zoom';
22
+ /**
23
+ * Effect type
24
+ */
25
+ export type EffectType = 'blur' | 'brightness' | 'contrast' | 'saturation' | 'color_grade' | 'noise_reduction' | 'stabilization' | 'speed' | 'reverse' | 'custom';
26
+ /**
27
+ * Timeline element
28
+ */
29
+ export interface TimelineElement {
30
+ id: string;
31
+ track_id: string;
32
+ type: 'clip' | 'text' | 'image' | 'audio' | 'effect';
33
+ source_id?: string;
34
+ start_time: number;
35
+ duration: number;
36
+ in_point?: number;
37
+ out_point?: number;
38
+ properties?: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * Track definition
42
+ */
43
+ export interface Track {
44
+ id: string;
45
+ name: string;
46
+ type: TrackType;
47
+ order: number;
48
+ locked: boolean;
49
+ muted: boolean;
50
+ visible: boolean;
51
+ elements: TimelineElement[];
52
+ }
53
+ /**
54
+ * Transition definition
55
+ */
56
+ export interface Transition {
57
+ id: string;
58
+ type: TransitionType;
59
+ from_element_id: string;
60
+ to_element_id: string;
61
+ duration: number;
62
+ properties?: Record<string, unknown>;
63
+ }
64
+ /**
65
+ * Effect definition
66
+ */
67
+ export interface Effect {
68
+ id: string;
69
+ type: EffectType;
70
+ element_id: string;
71
+ start_time: number;
72
+ end_time: number;
73
+ keyframes?: Keyframe[];
74
+ properties: Record<string, unknown>;
75
+ }
76
+ /**
77
+ * Keyframe for animation
78
+ */
79
+ export interface Keyframe {
80
+ time: number;
81
+ value: number | string | Record<string, unknown>;
82
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'bezier';
83
+ }
84
+ /**
85
+ * Text overlay
86
+ */
87
+ export interface TextOverlay {
88
+ id: string;
89
+ content: string;
90
+ font_family: string;
91
+ font_size: number;
92
+ font_weight?: number;
93
+ color: string;
94
+ background_color?: string;
95
+ position: {
96
+ x: number;
97
+ y: number;
98
+ };
99
+ alignment?: 'left' | 'center' | 'right';
100
+ animation?: TextAnimation;
101
+ }
102
+ /**
103
+ * Text animation
104
+ */
105
+ export interface TextAnimation {
106
+ type: 'fade' | 'slide' | 'typewriter' | 'bounce' | 'none';
107
+ duration: number;
108
+ delay?: number;
109
+ }
110
+ /**
111
+ * Editor project
112
+ */
113
+ export interface EditorProject extends Timestamps {
114
+ id: string;
115
+ organization_id: string;
116
+ name: string;
117
+ description?: string;
118
+ status: ProjectStatus;
119
+ width: number;
120
+ height: number;
121
+ frame_rate: number;
122
+ duration: number;
123
+ tracks: Track[];
124
+ transitions: Transition[];
125
+ effects: Effect[];
126
+ thumbnail_url?: string;
127
+ output_url?: string;
128
+ metadata?: Metadata;
129
+ version: number;
130
+ }
131
+ /**
132
+ * Create project request
133
+ */
134
+ export interface CreateProjectRequest {
135
+ name: string;
136
+ description?: string;
137
+ width?: number;
138
+ height?: number;
139
+ frame_rate?: number;
140
+ template_id?: string;
141
+ metadata?: Metadata;
142
+ }
143
+ /**
144
+ * Update project request
145
+ */
146
+ export interface UpdateProjectRequest {
147
+ name?: string;
148
+ description?: string;
149
+ metadata?: Metadata;
150
+ }
151
+ /**
152
+ * Add element request
153
+ */
154
+ export interface AddElementRequest {
155
+ track_id: string;
156
+ type: 'clip' | 'text' | 'image' | 'audio';
157
+ source_id?: string;
158
+ start_time: number;
159
+ duration?: number;
160
+ properties?: Record<string, unknown>;
161
+ }
162
+ /**
163
+ * Render options
164
+ */
165
+ export interface RenderOptions {
166
+ format?: 'mp4' | 'webm' | 'mov' | 'gif';
167
+ quality?: 'low' | 'medium' | 'high' | 'source';
168
+ resolution?: string;
169
+ bitrate?: number;
170
+ audio_codec?: 'aac' | 'mp3' | 'opus';
171
+ audio_bitrate?: number;
172
+ webhook_url?: string;
173
+ }
174
+ /**
175
+ * Render job
176
+ */
177
+ export interface RenderJob extends Timestamps {
178
+ id: string;
179
+ project_id: string;
180
+ status: 'pending' | 'rendering' | 'ready' | 'failed';
181
+ progress: number;
182
+ output_url?: string;
183
+ file_size?: number;
184
+ duration?: number;
185
+ error?: string;
186
+ }
187
+ /**
188
+ * List projects params
189
+ */
190
+ export interface ListProjectsParams extends PaginationParams {
191
+ status?: ProjectStatus;
192
+ created_after?: string;
193
+ created_before?: string;
194
+ order_by?: 'created_at' | 'updated_at' | 'name';
195
+ order?: 'asc' | 'desc';
196
+ }
197
+ /**
198
+ * Editor API client
199
+ *
200
+ * All operations require appropriate permissions. Authorization is enforced
201
+ * server-side - the API returns 403 if the authenticated user lacks access.
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * import { WaveClient } from '@wave/sdk';
206
+ * import { EditorAPI } from '@wave/sdk/editor';
207
+ *
208
+ * const client = new WaveClient({ apiKey: 'your-api-key' });
209
+ * const editor = new EditorAPI(client);
210
+ *
211
+ * // Create a new project
212
+ * const project = await editor.createProject({
213
+ * name: 'My Video',
214
+ * width: 1920,
215
+ * height: 1080,
216
+ * frame_rate: 30,
217
+ * });
218
+ *
219
+ * // Add a video track
220
+ * const track = await editor.addTrack(project.id, {
221
+ * name: 'Main Video',
222
+ * type: 'video',
223
+ * });
224
+ *
225
+ * // Add a clip to the track
226
+ * await editor.addElement(project.id, {
227
+ * track_id: track.id,
228
+ * type: 'clip',
229
+ * source_id: 'clip_123',
230
+ * start_time: 0,
231
+ * });
232
+ *
233
+ * // Render the project
234
+ * const job = await editor.render(project.id, { format: 'mp4' });
235
+ * ```
236
+ */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-types.d.ts","sourceRoot":"","sources":["../src/editor-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * WAVE SDK - Editor API
3
+ *
4
+ * Video editing capabilities including cuts, transitions, overlays, and effects.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { WaveClient, PaginationParams, PaginatedResponse } from './client';
10
+ export * from './editor-types';
11
+ import type { AddElementRequest, CreateProjectRequest, EditorProject, Effect, ListProjectsParams, RenderJob, RenderOptions, TimelineElement, Track, TrackType, Transition, UpdateProjectRequest } from './editor-types';
12
+ export declare class EditorAPI {
13
+ private readonly client;
14
+ private readonly basePath;
15
+ constructor(client: WaveClient);
16
+ /**
17
+ * Create a new editor project
18
+ *
19
+ * Requires: editor:create permission
20
+ */
21
+ createProject(request: CreateProjectRequest): Promise<EditorProject>;
22
+ /**
23
+ * Get a project by ID
24
+ *
25
+ * Requires: editor:read permission
26
+ */
27
+ getProject(projectId: string): Promise<EditorProject>;
28
+ /**
29
+ * Update a project
30
+ *
31
+ * Requires: editor:update permission
32
+ */
33
+ updateProject(projectId: string, request: UpdateProjectRequest): Promise<EditorProject>;
34
+ /**
35
+ * Remove a project
36
+ *
37
+ * Requires: editor:remove permission (server-side RBAC enforced)
38
+ */
39
+ removeProject(projectId: string): Promise<void>;
40
+ /**
41
+ * List projects
42
+ *
43
+ * Requires: editor:read permission
44
+ */
45
+ listProjects(params?: ListProjectsParams): Promise<PaginatedResponse<EditorProject>>;
46
+ /**
47
+ * Duplicate a project
48
+ *
49
+ * Requires: editor:create permission
50
+ */
51
+ duplicateProject(projectId: string, name?: string): Promise<EditorProject>;
52
+ /**
53
+ * Add a track to a project
54
+ *
55
+ * Requires: editor:update permission
56
+ */
57
+ addTrack(projectId: string, track: {
58
+ name: string;
59
+ type: TrackType;
60
+ order?: number;
61
+ }): Promise<Track>;
62
+ /**
63
+ * Update a track
64
+ *
65
+ * Requires: editor:update permission
66
+ */
67
+ updateTrack(projectId: string, trackId: string, updates: Partial<Pick<Track, 'name' | 'order' | 'locked' | 'muted' | 'visible'>>): Promise<Track>;
68
+ /**
69
+ * Remove a track
70
+ *
71
+ * Requires: editor:update permission (server-side RBAC enforced)
72
+ */
73
+ removeTrack(projectId: string, trackId: string): Promise<void>;
74
+ /**
75
+ * Add an element to a track
76
+ *
77
+ * Requires: editor:update permission
78
+ */
79
+ addElement(projectId: string, element: AddElementRequest): Promise<TimelineElement>;
80
+ /**
81
+ * Update an element
82
+ *
83
+ * Requires: editor:update permission
84
+ */
85
+ updateElement(projectId: string, elementId: string, updates: Partial<TimelineElement>): Promise<TimelineElement>;
86
+ /**
87
+ * Remove an element
88
+ *
89
+ * Requires: editor:update permission (server-side RBAC enforced)
90
+ */
91
+ removeElement(projectId: string, elementId: string): Promise<void>;
92
+ /**
93
+ * Move an element to a different position
94
+ *
95
+ * Requires: editor:update permission
96
+ */
97
+ moveElement(projectId: string, elementId: string, options: {
98
+ track_id?: string;
99
+ start_time: number;
100
+ }): Promise<TimelineElement>;
101
+ /**
102
+ * Trim an element
103
+ *
104
+ * Requires: editor:update permission
105
+ */
106
+ trimElement(projectId: string, elementId: string, options: {
107
+ in_point?: number;
108
+ out_point?: number;
109
+ }): Promise<TimelineElement>;
110
+ /**
111
+ * Add a transition between elements
112
+ *
113
+ * Requires: editor:update permission
114
+ */
115
+ addTransition(projectId: string, transition: Omit<Transition, 'id'>): Promise<Transition>;
116
+ /**
117
+ * Update a transition
118
+ *
119
+ * Requires: editor:update permission
120
+ */
121
+ updateTransition(projectId: string, transitionId: string, updates: Partial<Transition>): Promise<Transition>;
122
+ /**
123
+ * Remove a transition
124
+ *
125
+ * Requires: editor:update permission (server-side RBAC enforced)
126
+ */
127
+ removeTransition(projectId: string, transitionId: string): Promise<void>;
128
+ /**
129
+ * Add an effect to an element
130
+ *
131
+ * Requires: editor:update permission
132
+ */
133
+ addEffect(projectId: string, effect: Omit<Effect, 'id'>): Promise<Effect>;
134
+ /**
135
+ * Update an effect
136
+ *
137
+ * Requires: editor:update permission
138
+ */
139
+ updateEffect(projectId: string, effectId: string, updates: Partial<Effect>): Promise<Effect>;
140
+ /**
141
+ * Remove an effect
142
+ *
143
+ * Requires: editor:update permission (server-side RBAC enforced)
144
+ */
145
+ removeEffect(projectId: string, effectId: string): Promise<void>;
146
+ /**
147
+ * Start rendering a project
148
+ *
149
+ * Requires: editor:render permission
150
+ */
151
+ render(projectId: string, options?: RenderOptions): Promise<RenderJob>;
152
+ /**
153
+ * Get render job status
154
+ *
155
+ * Requires: editor:read permission
156
+ */
157
+ getRenderJob(projectId: string, jobId: string): Promise<RenderJob>;
158
+ /**
159
+ * List render jobs for a project
160
+ *
161
+ * Requires: editor:read permission
162
+ */
163
+ listRenderJobs(projectId: string, params?: PaginationParams): Promise<PaginatedResponse<RenderJob>>;
164
+ /**
165
+ * Cancel a render job
166
+ *
167
+ * Requires: editor:render permission
168
+ */
169
+ cancelRenderJob(projectId: string, jobId: string): Promise<RenderJob>;
170
+ /**
171
+ * Wait for render to complete
172
+ */
173
+ waitForRender(projectId: string, jobId: string, options?: {
174
+ pollInterval?: number;
175
+ timeout?: number;
176
+ onProgress?: (job: RenderJob) => void;
177
+ }): Promise<RenderJob>;
178
+ /**
179
+ * Generate a preview frame
180
+ *
181
+ * Requires: editor:read permission
182
+ */
183
+ getPreviewFrame(projectId: string, time: number, options?: {
184
+ width?: number;
185
+ height?: number;
186
+ format?: 'png' | 'jpeg';
187
+ }): Promise<{
188
+ url: string;
189
+ expires_at: string;
190
+ }>;
191
+ /**
192
+ * Generate a preview video segment
193
+ *
194
+ * Requires: editor:read permission
195
+ */
196
+ getPreviewSegment(projectId: string, startTime: number, endTime: number, options?: {
197
+ quality?: 'low' | 'medium';
198
+ }): Promise<{
199
+ url: string;
200
+ expires_at: string;
201
+ }>;
202
+ }
203
+ /**
204
+ * Create an Editor API instance
205
+ */
206
+ export declare function createEditorAPI(client: WaveClient): EditorAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}