@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,250 @@
1
+ /**
2
+ * WAVE SDK - Search API
3
+ *
4
+ * Search across media content using text, visual, and audio queries.
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 './search-types';
11
+ import type { AudioSearchRequest, IndexStatus, SearchFilters, SearchRequest, SearchResponse, SearchResult, SearchResultType, SearchSuggestion, VisualSearchRequest } from './search-types';
12
+ export declare class SearchAPI {
13
+ private readonly client;
14
+ private readonly basePath;
15
+ constructor(client: WaveClient);
16
+ /**
17
+ * Search content
18
+ *
19
+ * Requires: search:query permission
20
+ */
21
+ search(request: SearchRequest): Promise<SearchResponse>;
22
+ /**
23
+ * Quick search (simplified API)
24
+ *
25
+ * Requires: search:query permission
26
+ */
27
+ quickSearch(query: string, options?: {
28
+ types?: SearchResultType[];
29
+ limit?: number;
30
+ filters?: SearchFilters;
31
+ }): Promise<SearchResult[]>;
32
+ /**
33
+ * Search within a specific media
34
+ *
35
+ * Requires: search:query permission
36
+ */
37
+ searchInMedia(mediaId: string, mediaType: 'video' | 'audio' | 'clip' | 'stream', query: string, options?: {
38
+ limit?: number;
39
+ }): Promise<Array<{
40
+ timestamp: number;
41
+ end_timestamp?: number;
42
+ text?: string;
43
+ score: number;
44
+ type: 'speech' | 'visual' | 'chapter';
45
+ }>>;
46
+ /**
47
+ * Visual search (search by image)
48
+ *
49
+ * Requires: search:visual permission
50
+ */
51
+ visualSearch(request: VisualSearchRequest): Promise<SearchResponse>;
52
+ /**
53
+ * Find similar frames
54
+ *
55
+ * Requires: search:visual permission
56
+ */
57
+ findSimilarFrames(mediaId: string, timestamp: number, options?: {
58
+ limit?: number;
59
+ min_similarity?: number;
60
+ }): Promise<Array<{
61
+ media_id: string;
62
+ media_type: string;
63
+ timestamp: number;
64
+ thumbnail_url: string;
65
+ similarity: number;
66
+ }>>;
67
+ /**
68
+ * Detect objects in media
69
+ *
70
+ * Requires: search:visual permission
71
+ */
72
+ detectObjects(mediaId: string, options?: {
73
+ timestamps?: number[];
74
+ confidence_threshold?: number;
75
+ }): Promise<Array<{
76
+ timestamp: number;
77
+ objects: Array<{
78
+ label: string;
79
+ confidence: number;
80
+ bounding_box: {
81
+ x: number;
82
+ y: number;
83
+ width: number;
84
+ height: number;
85
+ };
86
+ }>;
87
+ }>>;
88
+ /**
89
+ * Audio search (search by audio)
90
+ *
91
+ * Requires: search:audio permission
92
+ */
93
+ audioSearch(request: AudioSearchRequest): Promise<SearchResponse>;
94
+ /**
95
+ * Find similar audio segments
96
+ *
97
+ * Requires: search:audio permission
98
+ */
99
+ findSimilarAudio(mediaId: string, startTime: number, endTime: number, options?: {
100
+ limit?: number;
101
+ min_similarity?: number;
102
+ }): Promise<Array<{
103
+ media_id: string;
104
+ media_type: string;
105
+ start_time: number;
106
+ end_time: number;
107
+ similarity: number;
108
+ }>>;
109
+ /**
110
+ * Detect music in media
111
+ *
112
+ * Requires: search:audio permission
113
+ */
114
+ detectMusic(mediaId: string): Promise<Array<{
115
+ start_time: number;
116
+ end_time: number;
117
+ confidence: number;
118
+ music_info?: {
119
+ title?: string;
120
+ artist?: string;
121
+ album?: string;
122
+ isrc?: string;
123
+ };
124
+ }>>;
125
+ /**
126
+ * Get search suggestions
127
+ *
128
+ * Requires: search:query permission
129
+ */
130
+ getSuggestions(prefix: string, options?: {
131
+ limit?: number;
132
+ types?: SearchResultType[];
133
+ }): Promise<SearchSuggestion[]>;
134
+ /**
135
+ * Get trending searches
136
+ *
137
+ * Requires: search:query permission
138
+ */
139
+ getTrending(options?: {
140
+ limit?: number;
141
+ timeframe?: 'hour' | 'day' | 'week';
142
+ }): Promise<Array<{
143
+ query: string;
144
+ count: number;
145
+ trend: number;
146
+ }>>;
147
+ /**
148
+ * Index media for search
149
+ *
150
+ * Requires: search:index permission
151
+ */
152
+ indexMedia(mediaId: string, mediaType: 'video' | 'audio' | 'clip' | 'stream', options?: {
153
+ features?: ('transcript' | 'visual' | 'audio' | 'metadata')[];
154
+ priority?: 'low' | 'normal' | 'high';
155
+ webhook_url?: string;
156
+ }): Promise<IndexStatus>;
157
+ /**
158
+ * Get index status
159
+ *
160
+ * Requires: search:read permission
161
+ */
162
+ getIndexStatus(mediaId: string): Promise<IndexStatus>;
163
+ /**
164
+ * Reindex media
165
+ *
166
+ * Requires: search:index permission
167
+ */
168
+ reindexMedia(mediaId: string, options?: {
169
+ features?: ('transcript' | 'visual' | 'audio' | 'metadata')[];
170
+ }): Promise<IndexStatus>;
171
+ /**
172
+ * Remove media from index
173
+ *
174
+ * Requires: search:index permission (server-side RBAC enforced)
175
+ */
176
+ removeFromIndex(mediaId: string): Promise<void>;
177
+ /**
178
+ * Save a search
179
+ *
180
+ * Requires: search:save permission
181
+ */
182
+ saveSearch(name: string, request: SearchRequest, options?: {
183
+ notify_on_new?: boolean;
184
+ }): Promise<{
185
+ id: string;
186
+ name: string;
187
+ query: SearchRequest;
188
+ created_at: string;
189
+ }>;
190
+ /**
191
+ * List saved searches
192
+ *
193
+ * Requires: search:read permission
194
+ */
195
+ listSavedSearches(params?: PaginationParams): Promise<PaginatedResponse<{
196
+ id: string;
197
+ name: string;
198
+ query: SearchRequest;
199
+ last_run?: string;
200
+ new_results?: number;
201
+ }>>;
202
+ /**
203
+ * Run a saved search
204
+ *
205
+ * Requires: search:query permission
206
+ */
207
+ runSavedSearch(savedSearchId: string): Promise<SearchResponse>;
208
+ /**
209
+ * Remove a saved search
210
+ *
211
+ * Requires: search:save permission (server-side RBAC enforced)
212
+ */
213
+ removeSavedSearch(savedSearchId: string): Promise<void>;
214
+ /**
215
+ * Get search analytics
216
+ *
217
+ * Requires: search:analytics permission
218
+ */
219
+ getAnalytics(options?: {
220
+ start_date?: string;
221
+ end_date?: string;
222
+ group_by?: 'day' | 'week' | 'month';
223
+ }): Promise<{
224
+ total_searches: number;
225
+ unique_queries: number;
226
+ zero_results_rate: number;
227
+ average_results: number;
228
+ top_queries: Array<{
229
+ query: string;
230
+ count: number;
231
+ avg_results: number;
232
+ }>;
233
+ top_zero_results: Array<{
234
+ query: string;
235
+ count: number;
236
+ }>;
237
+ }>;
238
+ /**
239
+ * Wait for indexing to complete
240
+ */
241
+ waitForIndex(mediaId: string, options?: {
242
+ pollInterval?: number;
243
+ timeout?: number;
244
+ onProgress?: (status: IndexStatus) => void;
245
+ }): Promise<IndexStatus>;
246
+ }
247
+ /**
248
+ * Create a Search API instance
249
+ */
250
+ export declare function createSearchAPI(client: WaveClient): SearchAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,378 @@
1
+ /**
2
+ * WAVE SDK - Sentiment API
3
+ *
4
+ * Analyze sentiment and emotions in audio, video, and text 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
+ * Analysis status
12
+ */
13
+ export type AnalysisStatus = 'pending' | 'processing' | 'ready' | 'failed';
14
+ /**
15
+ * Sentiment label
16
+ */
17
+ export type SentimentLabel = 'very_negative' | 'negative' | 'neutral' | 'positive' | 'very_positive';
18
+ /**
19
+ * Emotion type
20
+ */
21
+ export type EmotionType = 'joy' | 'sadness' | 'anger' | 'fear' | 'surprise' | 'disgust' | 'contempt' | 'neutral';
22
+ /**
23
+ * Analysis source type
24
+ */
25
+ export type SourceType = 'video' | 'audio' | 'text' | 'chat' | 'transcript';
26
+ /**
27
+ * Sentiment analysis job
28
+ */
29
+ export interface SentimentAnalysis extends Timestamps {
30
+ id: string;
31
+ organization_id: string;
32
+ source_type: SourceType;
33
+ source_id?: string;
34
+ source_url?: string;
35
+ status: AnalysisStatus;
36
+ overall_sentiment: SentimentLabel;
37
+ sentiment_score: number;
38
+ confidence: number;
39
+ dominant_emotions: EmotionType[];
40
+ duration?: number;
41
+ segment_count?: number;
42
+ error?: string;
43
+ metadata?: Metadata;
44
+ }
45
+ /**
46
+ * Sentiment segment
47
+ */
48
+ export interface SentimentSegment {
49
+ id: string;
50
+ start_time: number;
51
+ end_time: number;
52
+ text?: string;
53
+ sentiment: SentimentLabel;
54
+ sentiment_score: number;
55
+ confidence: number;
56
+ emotions: EmotionScore[];
57
+ speaker_id?: number;
58
+ }
59
+ /**
60
+ * Emotion score
61
+ */
62
+ export interface EmotionScore {
63
+ emotion: EmotionType;
64
+ score: number;
65
+ confidence: number;
66
+ }
67
+ /**
68
+ * Sentiment trend point
69
+ */
70
+ export interface SentimentTrend {
71
+ timestamp: number;
72
+ sentiment_score: number;
73
+ dominant_emotion: EmotionType;
74
+ window_size: number;
75
+ }
76
+ /**
77
+ * Sentiment summary
78
+ */
79
+ export interface SentimentSummary {
80
+ overall_sentiment: SentimentLabel;
81
+ sentiment_score: number;
82
+ sentiment_distribution: Record<SentimentLabel, number>;
83
+ emotion_distribution: Record<EmotionType, number>;
84
+ key_moments: KeyMoment[];
85
+ topics_sentiment: TopicSentiment[];
86
+ }
87
+ /**
88
+ * Key emotional moment
89
+ */
90
+ export interface KeyMoment {
91
+ timestamp: number;
92
+ end_time?: number;
93
+ type: 'peak_positive' | 'peak_negative' | 'sentiment_shift' | 'high_emotion';
94
+ sentiment_score: number;
95
+ emotion: EmotionType;
96
+ description?: string;
97
+ text?: string;
98
+ }
99
+ /**
100
+ * Topic sentiment
101
+ */
102
+ export interface TopicSentiment {
103
+ topic: string;
104
+ sentiment: SentimentLabel;
105
+ sentiment_score: number;
106
+ mention_count: number;
107
+ examples: string[];
108
+ }
109
+ /**
110
+ * Create analysis request
111
+ */
112
+ export interface CreateAnalysisRequest {
113
+ source_type: SourceType;
114
+ source_id?: string;
115
+ source_url?: string;
116
+ text?: string;
117
+ /** Analysis options */
118
+ options?: {
119
+ /** Enable emotion detection */
120
+ emotions?: boolean;
121
+ /** Enable topic extraction */
122
+ topics?: boolean;
123
+ /** Enable key moment detection */
124
+ key_moments?: boolean;
125
+ /** Segment granularity in seconds */
126
+ segment_size?: number;
127
+ /** Language (auto-detect if not specified) */
128
+ language?: string;
129
+ /** Enable speaker-level analysis */
130
+ per_speaker?: boolean;
131
+ };
132
+ /** Webhook URL for completion */
133
+ webhook_url?: string;
134
+ metadata?: Metadata;
135
+ }
136
+ /**
137
+ * Batch analysis request
138
+ */
139
+ export interface BatchAnalysisRequest {
140
+ items: Array<{
141
+ source_type: SourceType;
142
+ source_id?: string;
143
+ source_url?: string;
144
+ text?: string;
145
+ }>;
146
+ options?: CreateAnalysisRequest['options'];
147
+ webhook_url?: string;
148
+ }
149
+ /**
150
+ * List analyses params
151
+ */
152
+ export interface ListAnalysesParams extends PaginationParams {
153
+ status?: AnalysisStatus;
154
+ source_type?: SourceType;
155
+ sentiment?: SentimentLabel;
156
+ created_after?: string;
157
+ created_before?: string;
158
+ }
159
+ /**
160
+ * Sentiment API client
161
+ *
162
+ * All operations require appropriate permissions. Authorization is enforced
163
+ * server-side - the API returns 403 if the authenticated user lacks access.
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * import { WaveClient } from '@wave/sdk';
168
+ * import { SentimentAPI } from '@wave/sdk/sentiment';
169
+ *
170
+ * const client = new WaveClient({ apiKey: 'your-api-key' });
171
+ * const sentiment = new SentimentAPI(client);
172
+ *
173
+ * // Analyze sentiment of a video
174
+ * const analysis = await sentiment.analyze({
175
+ * source_type: 'video',
176
+ * source_id: 'video_123',
177
+ * options: {
178
+ * emotions: true,
179
+ * key_moments: true,
180
+ * },
181
+ * });
182
+ *
183
+ * // Wait for results
184
+ * const result = await sentiment.waitForReady(analysis.id);
185
+ * console.log('Overall sentiment:', result.overall_sentiment);
186
+ * ```
187
+ */
188
+ export declare class SentimentAPI {
189
+ private readonly client;
190
+ private readonly basePath;
191
+ constructor(client: WaveClient);
192
+ /**
193
+ * Create a sentiment analysis job
194
+ *
195
+ * Requires: sentiment:analyze permission
196
+ */
197
+ analyze(request: CreateAnalysisRequest): Promise<SentimentAnalysis>;
198
+ /**
199
+ * Analyze text directly (synchronous for short text)
200
+ *
201
+ * Requires: sentiment:analyze permission
202
+ */
203
+ analyzeText(text: string, options?: {
204
+ emotions?: boolean;
205
+ language?: string;
206
+ }): Promise<{
207
+ sentiment: SentimentLabel;
208
+ sentiment_score: number;
209
+ confidence: number;
210
+ emotions?: EmotionScore[];
211
+ }>;
212
+ /**
213
+ * Batch analyze multiple items
214
+ *
215
+ * Requires: sentiment:analyze permission
216
+ */
217
+ batchAnalyze(request: BatchAnalysisRequest): Promise<{
218
+ batch_id: string;
219
+ jobs: SentimentAnalysis[];
220
+ }>;
221
+ /**
222
+ * Get an analysis by ID
223
+ *
224
+ * Requires: sentiment:read permission
225
+ */
226
+ get(analysisId: string): Promise<SentimentAnalysis>;
227
+ /**
228
+ * Remove an analysis
229
+ *
230
+ * Requires: sentiment:remove permission (server-side RBAC enforced)
231
+ */
232
+ remove(analysisId: string): Promise<void>;
233
+ /**
234
+ * List analyses
235
+ *
236
+ * Requires: sentiment:read permission
237
+ */
238
+ list(params?: ListAnalysesParams): Promise<PaginatedResponse<SentimentAnalysis>>;
239
+ /**
240
+ * Get sentiment segments
241
+ *
242
+ * Requires: sentiment:read permission
243
+ */
244
+ getSegments(analysisId: string, params?: PaginationParams & {
245
+ start_time?: number;
246
+ end_time?: number;
247
+ sentiment?: SentimentLabel;
248
+ min_score?: number;
249
+ }): Promise<PaginatedResponse<SentimentSegment>>;
250
+ /**
251
+ * Get sentiment summary
252
+ *
253
+ * Requires: sentiment:read permission
254
+ */
255
+ getSummary(analysisId: string): Promise<SentimentSummary>;
256
+ /**
257
+ * Get sentiment trend over time
258
+ *
259
+ * Requires: sentiment:read permission
260
+ */
261
+ getTrend(analysisId: string, options?: {
262
+ window_size?: number;
263
+ resolution?: number;
264
+ }): Promise<SentimentTrend[]>;
265
+ /**
266
+ * Get key emotional moments
267
+ *
268
+ * Requires: sentiment:read permission
269
+ */
270
+ getKeyMoments(analysisId: string, options?: {
271
+ type?: KeyMoment['type'];
272
+ limit?: number;
273
+ }): Promise<KeyMoment[]>;
274
+ /**
275
+ * Get topic sentiments
276
+ *
277
+ * Requires: sentiment:read permission
278
+ */
279
+ getTopicSentiments(analysisId: string, options?: {
280
+ min_mentions?: number;
281
+ }): Promise<TopicSentiment[]>;
282
+ /**
283
+ * Get sentiment by speaker
284
+ *
285
+ * Requires: sentiment:read permission
286
+ */
287
+ getSpeakerSentiment(analysisId: string): Promise<Array<{
288
+ speaker_id: number;
289
+ speaker_label?: string;
290
+ sentiment: SentimentLabel;
291
+ sentiment_score: number;
292
+ dominant_emotions: EmotionType[];
293
+ segment_count: number;
294
+ total_duration: number;
295
+ }>>;
296
+ /**
297
+ * Start real-time sentiment analysis
298
+ *
299
+ * Requires: sentiment:realtime permission
300
+ */
301
+ startRealtime(streamId: string, options?: {
302
+ emotions?: boolean;
303
+ segment_size?: number;
304
+ language?: string;
305
+ }): Promise<{
306
+ session_id: string;
307
+ websocket_url: string;
308
+ expires_at: string;
309
+ }>;
310
+ /**
311
+ * Stop real-time analysis
312
+ *
313
+ * Requires: sentiment:realtime permission
314
+ */
315
+ stopRealtime(sessionId: string): Promise<SentimentAnalysis>;
316
+ /**
317
+ * Get real-time session status
318
+ *
319
+ * Requires: sentiment:read permission
320
+ */
321
+ getRealtimeStatus(sessionId: string): Promise<{
322
+ status: 'active' | 'paused' | 'stopped';
323
+ duration: number;
324
+ current_sentiment: SentimentLabel;
325
+ current_score: number;
326
+ segments_processed: number;
327
+ }>;
328
+ /**
329
+ * Compare sentiment between analyses
330
+ *
331
+ * Requires: sentiment:read permission
332
+ */
333
+ compare(analysisIds: string[]): Promise<{
334
+ analyses: Array<{
335
+ id: string;
336
+ sentiment: SentimentLabel;
337
+ sentiment_score: number;
338
+ dominant_emotions: EmotionType[];
339
+ }>;
340
+ comparison: {
341
+ most_positive: string;
342
+ most_negative: string;
343
+ score_range: number;
344
+ common_emotions: EmotionType[];
345
+ };
346
+ }>;
347
+ /**
348
+ * Export analysis results
349
+ *
350
+ * Requires: sentiment:read permission
351
+ */
352
+ exportAnalysis(analysisId: string, format: 'json' | 'csv' | 'pdf'): Promise<{
353
+ url: string;
354
+ expires_at: string;
355
+ }>;
356
+ /**
357
+ * Wait for analysis to complete
358
+ */
359
+ waitForReady(analysisId: string, options?: {
360
+ pollInterval?: number;
361
+ timeout?: number;
362
+ onProgress?: (analysis: SentimentAnalysis) => void;
363
+ }): Promise<SentimentAnalysis>;
364
+ /**
365
+ * Get supported languages
366
+ *
367
+ * Requires: sentiment:read permission
368
+ */
369
+ getSupportedLanguages(): Promise<Array<{
370
+ code: string;
371
+ name: string;
372
+ emotion_detection: boolean;
373
+ }>>;
374
+ }
375
+ /**
376
+ * Create a Sentiment API instance
377
+ */
378
+ export declare function createSentimentAPI(client: WaveClient): SentimentAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentiment.d.ts","sourceRoot":"","sources":["../src/sentiment.ts"],"names":[],"mappings":"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"}