@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
@@ -0,0 +1,104 @@
1
+ /**
2
+ * WAVE SDK - Audience API
3
+ *
4
+ * Interactive audience engagement: polls, Q&A, reactions, and engagement metrics.
5
+ */
6
+ import type { WaveClient } from "./client";
7
+ export type PollStatus = "draft" | "active" | "closed";
8
+ export interface Poll {
9
+ id: string;
10
+ stream_id: string;
11
+ question: string;
12
+ options: PollOption[];
13
+ status: PollStatus;
14
+ total_votes: number;
15
+ allow_multiple: boolean;
16
+ show_results: boolean;
17
+ duration_seconds?: number;
18
+ created_at: string;
19
+ updated_at: string;
20
+ }
21
+ export interface PollOption {
22
+ id: string;
23
+ text: string;
24
+ vote_count: number;
25
+ percentage: number;
26
+ }
27
+ export interface QASession {
28
+ id: string;
29
+ stream_id: string;
30
+ status: "active" | "paused" | "closed";
31
+ questions: Question[];
32
+ allow_anonymous: boolean;
33
+ moderated: boolean;
34
+ created_at: string;
35
+ }
36
+ export interface Question {
37
+ id: string;
38
+ session_id: string;
39
+ text: string;
40
+ author: string;
41
+ upvotes: number;
42
+ answered: boolean;
43
+ answer?: string;
44
+ pinned: boolean;
45
+ created_at: string;
46
+ }
47
+ export interface ReactionBurst {
48
+ stream_id: string;
49
+ type: "like" | "love" | "fire" | "clap" | "laugh" | "wow";
50
+ count: number;
51
+ timestamp: string;
52
+ }
53
+ export interface EngagementMetrics {
54
+ stream_id: string;
55
+ active_participants: number;
56
+ chat_rate_per_minute: number;
57
+ reaction_rate: number;
58
+ poll_participation_rate: number;
59
+ qa_questions: number;
60
+ peak_engagement_at: string;
61
+ }
62
+ export interface CreatePollRequest {
63
+ stream_id: string;
64
+ question: string;
65
+ options: string[];
66
+ allow_multiple?: boolean;
67
+ show_results?: boolean;
68
+ duration_seconds?: number;
69
+ }
70
+ export interface CreateQARequest {
71
+ stream_id: string;
72
+ allow_anonymous?: boolean;
73
+ moderated?: boolean;
74
+ }
75
+ /**
76
+ * Interactive audience engagement: live polls, Q&A sessions, and reactions.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const poll = await wave.audience.createPoll({ stream_id: id, question: "Best feature?", options: ["A", "B", "C"] });
81
+ * const metrics = await wave.audience.getEngagementMetrics(streamId);
82
+ * ```
83
+ */
84
+ export declare class AudienceAPI {
85
+ private readonly client;
86
+ private readonly basePath;
87
+ constructor(client: WaveClient);
88
+ createPoll(request: CreatePollRequest): Promise<Poll>;
89
+ getPoll(pollId: string): Promise<Poll>;
90
+ closePoll(pollId: string): Promise<Poll>;
91
+ getPollResults(pollId: string): Promise<Poll>;
92
+ vote(pollId: string, optionIds: string[]): Promise<void>;
93
+ createQA(request: CreateQARequest): Promise<QASession>;
94
+ getQA(sessionId: string): Promise<QASession>;
95
+ closeQA(sessionId: string): Promise<QASession>;
96
+ submitQuestion(sessionId: string, text: string): Promise<Question>;
97
+ answerQuestion(sessionId: string, questionId: string, answer: string): Promise<Question>;
98
+ upvoteQuestion(sessionId: string, questionId: string): Promise<Question>;
99
+ pinQuestion(sessionId: string, questionId: string): Promise<Question>;
100
+ sendReaction(streamId: string, type: ReactionBurst["type"]): Promise<void>;
101
+ getReactionMetrics(streamId: string): Promise<ReactionBurst[]>;
102
+ getEngagementMetrics(streamId: string): Promise<EngagementMetrics>;
103
+ }
104
+ export declare function createAudienceAPI(client: WaveClient): AudienceAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../src/audience.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * WAVE Camera Control SDK
3
+ *
4
+ * Discover and control cameras from any manufacturer.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { WaveClient } from './client';
9
+ export interface ManagedCamera {
10
+ readonly id: string;
11
+ readonly name: string;
12
+ readonly manufacturer: 'blackmagic' | 'sony' | 'canon' | 'ptzoptics' | 'other';
13
+ readonly model: string | null;
14
+ readonly ipAddress: string;
15
+ readonly status: 'online' | 'offline' | 'error';
16
+ readonly controlProtocol: string;
17
+ }
18
+ export interface CameraPreset {
19
+ readonly id: string;
20
+ readonly name: string;
21
+ readonly slot: number;
22
+ }
23
+ export interface CameraControlParams {
24
+ readonly iris?: number;
25
+ readonly focus?: number;
26
+ readonly zoom?: number;
27
+ readonly whiteBalance?: {
28
+ temperature: number;
29
+ tint: number;
30
+ };
31
+ readonly gain?: number;
32
+ readonly shutter?: number;
33
+ readonly panTilt?: {
34
+ pan: number;
35
+ tilt: number;
36
+ speed: number;
37
+ };
38
+ }
39
+ export declare class CameraControlAPI {
40
+ private readonly client;
41
+ private readonly basePath;
42
+ constructor(client: WaveClient);
43
+ discover(): Promise<ManagedCamera[]>;
44
+ list(): Promise<ManagedCamera[]>;
45
+ get(cameraId: string): Promise<ManagedCamera>;
46
+ control(cameraId: string, params: CameraControlParams): Promise<void>;
47
+ autofocus(cameraId: string): Promise<void>;
48
+ savePreset(cameraId: string, name: string, slot: number): Promise<CameraPreset>;
49
+ recallPreset(cameraId: string, presetId: string): Promise<void>;
50
+ listPresets(cameraId: string): Promise<CameraPreset[]>;
51
+ startRecording(cameraId: string): Promise<void>;
52
+ stopRecording(cameraId: string): Promise<void>;
53
+ }
54
+ export declare function createCameraControlAPI(client: WaveClient): CameraControlAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-control.d.ts","sourceRoot":"","sources":["../src/camera-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,MAAM,EAAE,UAAU;IAIxB,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAIpC,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAIhC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI7C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/E,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAItD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAE3E"}
@@ -0,0 +1,362 @@
1
+ /**
2
+ * WAVE SDK - Captions API
3
+ *
4
+ * Generate, manage, and translate captions for video content.
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, Timestamps, Metadata } from './client';
10
+ /**
11
+ * Caption status
12
+ */
13
+ export type CaptionStatus = 'pending' | 'processing' | 'ready' | 'failed';
14
+ /**
15
+ * Caption format
16
+ */
17
+ export type CaptionFormat = 'srt' | 'vtt' | 'sbv' | 'ass' | 'ttml' | 'dfxp' | 'json';
18
+ /**
19
+ * Caption track
20
+ */
21
+ export interface CaptionTrack extends Timestamps {
22
+ id: string;
23
+ organization_id: string;
24
+ media_id: string;
25
+ media_type: 'video' | 'audio' | 'stream';
26
+ language: string;
27
+ label: string;
28
+ status: CaptionStatus;
29
+ is_default: boolean;
30
+ is_auto_generated: boolean;
31
+ word_count?: number;
32
+ duration?: number;
33
+ accuracy_score?: number;
34
+ url?: string;
35
+ error?: string;
36
+ metadata?: Metadata;
37
+ }
38
+ /**
39
+ * Caption cue (single caption segment)
40
+ */
41
+ export interface CaptionCue {
42
+ id: string;
43
+ start_time: number;
44
+ end_time: number;
45
+ text: string;
46
+ speaker?: string;
47
+ confidence?: number;
48
+ words?: CaptionWord[];
49
+ style?: CaptionStyle;
50
+ }
51
+ /**
52
+ * Word-level timing
53
+ */
54
+ export interface CaptionWord {
55
+ word: string;
56
+ start_time: number;
57
+ end_time: number;
58
+ confidence?: number;
59
+ }
60
+ /**
61
+ * Caption styling
62
+ */
63
+ export interface CaptionStyle {
64
+ align?: 'left' | 'center' | 'right';
65
+ vertical?: 'top' | 'middle' | 'bottom';
66
+ line?: number;
67
+ position?: number;
68
+ size?: number;
69
+ color?: string;
70
+ background_color?: string;
71
+ font_family?: string;
72
+ font_weight?: 'normal' | 'bold';
73
+ font_style?: 'normal' | 'italic';
74
+ }
75
+ /**
76
+ * Generate captions request
77
+ */
78
+ export interface GenerateCaptionsRequest {
79
+ media_id: string;
80
+ media_type: 'video' | 'audio' | 'stream';
81
+ language?: string;
82
+ label?: string;
83
+ /** Model to use for transcription */
84
+ model?: 'standard' | 'enhanced' | 'whisper';
85
+ /** Enable speaker diarization */
86
+ speaker_diarization?: boolean;
87
+ /** Number of expected speakers */
88
+ speaker_count?: number;
89
+ /** Filter profanity */
90
+ profanity_filter?: boolean;
91
+ /** Custom vocabulary */
92
+ vocabulary?: string[];
93
+ /** Enable word-level timing */
94
+ word_timestamps?: boolean;
95
+ /** Webhook URL for completion */
96
+ webhook_url?: string;
97
+ metadata?: Metadata;
98
+ }
99
+ /**
100
+ * Upload captions request
101
+ */
102
+ export interface UploadCaptionsRequest {
103
+ media_id: string;
104
+ media_type: 'video' | 'audio' | 'stream';
105
+ language: string;
106
+ label: string;
107
+ format: CaptionFormat;
108
+ /** Caption file content */
109
+ content: string;
110
+ is_default?: boolean;
111
+ metadata?: Metadata;
112
+ }
113
+ /**
114
+ * Update captions request
115
+ */
116
+ export interface UpdateCaptionsRequest {
117
+ label?: string;
118
+ is_default?: boolean;
119
+ metadata?: Metadata;
120
+ }
121
+ /**
122
+ * Translate captions request
123
+ */
124
+ export interface TranslateCaptionsRequest {
125
+ target_language: string;
126
+ target_label?: string;
127
+ /** Use professional translation */
128
+ professional?: boolean;
129
+ /** Preserve speaker labels */
130
+ preserve_speakers?: boolean;
131
+ webhook_url?: string;
132
+ }
133
+ /**
134
+ * Burn-in captions request
135
+ */
136
+ export interface BurnInCaptionsRequest {
137
+ caption_track_id: string;
138
+ style?: CaptionStyle;
139
+ /** Output format */
140
+ format?: 'mp4' | 'webm' | 'mov';
141
+ /** Output quality */
142
+ quality?: 'low' | 'medium' | 'high' | 'source';
143
+ webhook_url?: string;
144
+ }
145
+ /**
146
+ * Burn-in job
147
+ */
148
+ export interface BurnInJob extends Timestamps {
149
+ id: string;
150
+ media_id: string;
151
+ caption_track_id: string;
152
+ status: 'pending' | 'processing' | 'ready' | 'failed';
153
+ progress: number;
154
+ output_url?: string;
155
+ error?: string;
156
+ }
157
+ /**
158
+ * List captions params
159
+ */
160
+ export interface ListCaptionsParams extends PaginationParams {
161
+ media_id?: string;
162
+ media_type?: 'video' | 'audio' | 'stream';
163
+ language?: string;
164
+ status?: CaptionStatus;
165
+ is_auto_generated?: boolean;
166
+ }
167
+ /**
168
+ * Captions API client
169
+ *
170
+ * All operations require appropriate permissions. Authorization is enforced
171
+ * server-side - the API returns 403 if the authenticated user lacks access.
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * import { WaveClient } from '@wave/sdk';
176
+ * import { CaptionsAPI } from '@wave/sdk/captions';
177
+ *
178
+ * const client = new WaveClient({ apiKey: 'your-api-key' });
179
+ * const captions = new CaptionsAPI(client);
180
+ *
181
+ * // Generate captions for a video
182
+ * const track = await captions.generate({
183
+ * media_id: 'video_123',
184
+ * media_type: 'video',
185
+ * language: 'en',
186
+ * speaker_diarization: true,
187
+ * });
188
+ *
189
+ * // Wait for processing
190
+ * const ready = await captions.waitForReady(track.id);
191
+ *
192
+ * // Translate to Spanish
193
+ * const spanish = await captions.translate(track.id, {
194
+ * target_language: 'es',
195
+ * });
196
+ * ```
197
+ */
198
+ export declare class CaptionsAPI {
199
+ private readonly client;
200
+ private readonly basePath;
201
+ constructor(client: WaveClient);
202
+ /**
203
+ * Generate captions using AI
204
+ *
205
+ * Requires: captions:generate permission
206
+ */
207
+ generate(request: GenerateCaptionsRequest): Promise<CaptionTrack>;
208
+ /**
209
+ * Upload existing captions
210
+ *
211
+ * Requires: captions:create permission
212
+ */
213
+ upload(request: UploadCaptionsRequest): Promise<CaptionTrack>;
214
+ /**
215
+ * Get a caption track by ID
216
+ *
217
+ * Requires: captions:read permission
218
+ */
219
+ get(trackId: string): Promise<CaptionTrack>;
220
+ /**
221
+ * Update a caption track
222
+ *
223
+ * Requires: captions:update permission
224
+ */
225
+ update(trackId: string, request: UpdateCaptionsRequest): Promise<CaptionTrack>;
226
+ /**
227
+ * Remove a caption track
228
+ *
229
+ * Requires: captions:remove permission (server-side RBAC enforced)
230
+ */
231
+ remove(trackId: string): Promise<void>;
232
+ /**
233
+ * List caption tracks
234
+ *
235
+ * Requires: captions:read permission
236
+ */
237
+ list(params?: ListCaptionsParams): Promise<PaginatedResponse<CaptionTrack>>;
238
+ /**
239
+ * Get caption tracks for a specific media
240
+ *
241
+ * Requires: captions:read permission
242
+ */
243
+ getForMedia(mediaId: string, mediaType: 'video' | 'audio' | 'stream'): Promise<CaptionTrack[]>;
244
+ /**
245
+ * Get caption cues (segments)
246
+ *
247
+ * Requires: captions:read permission
248
+ */
249
+ getCues(trackId: string, params?: PaginationParams & {
250
+ start_time?: number;
251
+ end_time?: number;
252
+ }): Promise<PaginatedResponse<CaptionCue>>;
253
+ /**
254
+ * Update a caption cue
255
+ *
256
+ * Requires: captions:update permission
257
+ */
258
+ updateCue(trackId: string, cueId: string, updates: Partial<Pick<CaptionCue, 'text' | 'start_time' | 'end_time' | 'speaker' | 'style'>>): Promise<CaptionCue>;
259
+ /**
260
+ * Add a new caption cue
261
+ *
262
+ * Requires: captions:update permission
263
+ */
264
+ addCue(trackId: string, cue: Omit<CaptionCue, 'id' | 'confidence' | 'words'>): Promise<CaptionCue>;
265
+ /**
266
+ * Remove a caption cue
267
+ *
268
+ * Requires: captions:update permission (server-side RBAC enforced)
269
+ */
270
+ removeCue(trackId: string, cueId: string): Promise<void>;
271
+ /**
272
+ * Bulk update cues
273
+ *
274
+ * Requires: captions:update permission
275
+ */
276
+ bulkUpdateCues(trackId: string, updates: Array<{
277
+ id: string;
278
+ text?: string;
279
+ start_time?: number;
280
+ end_time?: number;
281
+ }>): Promise<{
282
+ updated: number;
283
+ }>;
284
+ /**
285
+ * Translate a caption track to another language
286
+ *
287
+ * Requires: captions:translate permission
288
+ */
289
+ translate(trackId: string, request: TranslateCaptionsRequest): Promise<CaptionTrack>;
290
+ /**
291
+ * Export captions in a specific format
292
+ *
293
+ * Requires: captions:read permission
294
+ */
295
+ exportFormat(trackId: string, format: CaptionFormat): Promise<{
296
+ url: string;
297
+ expires_at: string;
298
+ }>;
299
+ /**
300
+ * Get captions as plain text
301
+ *
302
+ * Requires: captions:read permission
303
+ */
304
+ getText(trackId: string): Promise<string>;
305
+ /**
306
+ * Burn captions into video
307
+ *
308
+ * Requires: captions:burnin permission
309
+ */
310
+ burnIn(request: BurnInCaptionsRequest): Promise<BurnInJob>;
311
+ /**
312
+ * Get burn-in job status
313
+ *
314
+ * Requires: captions:read permission
315
+ */
316
+ getBurnInJob(jobId: string): Promise<BurnInJob>;
317
+ /**
318
+ * Wait for burn-in to complete
319
+ */
320
+ waitForBurnIn(jobId: string, options?: {
321
+ pollInterval?: number;
322
+ timeout?: number;
323
+ onProgress?: (job: BurnInJob) => void;
324
+ }): Promise<BurnInJob>;
325
+ /**
326
+ * Wait for caption generation to complete
327
+ */
328
+ waitForReady(trackId: string, options?: {
329
+ pollInterval?: number;
330
+ timeout?: number;
331
+ onProgress?: (track: CaptionTrack) => void;
332
+ }): Promise<CaptionTrack>;
333
+ /**
334
+ * Get supported languages
335
+ *
336
+ * Requires: captions:read permission
337
+ */
338
+ getSupportedLanguages(): Promise<Array<{
339
+ code: string;
340
+ name: string;
341
+ native_name: string;
342
+ supports_generation: boolean;
343
+ supports_translation: boolean;
344
+ }>>;
345
+ /**
346
+ * Detect language from audio
347
+ *
348
+ * Requires: captions:generate permission
349
+ */
350
+ detectLanguage(mediaId: string, mediaType: 'video' | 'audio' | 'stream'): Promise<{
351
+ detected_language: string;
352
+ confidence: number;
353
+ alternatives: Array<{
354
+ language: string;
355
+ confidence: number;
356
+ }>;
357
+ }>;
358
+ }
359
+ /**
360
+ * Create a Captions API instance
361
+ */
362
+ export declare function createCaptionsAPI(client: WaveClient): CaptionsAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captions.d.ts","sourceRoot":"","sources":["../src/captions.ts"],"names":[],"mappings":"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"}